Android模拟地图点击位置似乎不起作用

Android模拟地图点击位置似乎不起作用,android,google-maps,unit-testing,google-api,location,Android,Google Maps,Unit Testing,Google Api,Location,我正在开发一个应用程序,它使用谷歌地图和谷歌地理围栏定位服务 为了进行测试,我想这样做,当我点击地图上的一个点时,Location客户端会得到该点的模拟位置。守则的有关部分如下: @Override protected void onCreate(Bundle savedInstanceState) { ... mLocationClient = new LocationClient(this, this, this); mLocationRequest = Locati

我正在开发一个应用程序,它使用谷歌地图和谷歌地理围栏定位服务

为了进行测试,我想这样做,当我点击地图上的一个点时,Location客户端会得到该点的模拟位置。守则的有关部分如下:

@Override
protected void onCreate(Bundle savedInstanceState) {
    ...
    mLocationClient = new LocationClient(this, this, this);
    mLocationRequest = LocationRequest.create();
    mLocationRequest.setInterval(1000);
    mLocationRequest.setFastestInterval(1000);
    mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);

}

@Override
protected void onResume() {
    super.onResume();
    GoogleMap gmap = mMapFragment.getMap();
    gmap.setOnMapClickListener(this);
}

public void onConnected(Bundle connectionHint) {
    mLocationClient.setMockMode(true);
    mLocationClient.requestLocationUpdates(mLocationRequest, this);
            ...
}

@Override
public void onMapClick(LatLng point) {
    Location loc = new Location("flp");
    loc.setLatitude(point.latitude);
    loc.setLongitude(point.longitude);
    loc.setAccuracy(1);
    loc.setTime(System.currentTimeMillis());
    mLocationClient.setMockLocation(loc);
    Toast.makeText(this, "Touch " + loc.getLatitude() + " - " + loc.getLongitude(), Toast.LENGTH_SHORT).show();
}

@Override
public void onLocationChanged(Location loc) {
    Toast.makeText(this, "LocChange " + loc.getLatitude() + " - " + loc.getLongitude(), Toast.LENGTH_SHORT).show();
}
地图点击监听器工作:当我触摸地图时,我得到了触摸吐司。 位置监听器也可以工作:如果我不激活位置客户端的模拟模式,它会从GPS接收正常的位置更新,显示LocChange TOAST

但是,如果我激活模拟模式,我只会得到触摸式祝酒,而不会更改。Gofence也不会被激活。 这让我相信问题出在模拟位置的发送/接收上


有什么我遗漏的吗…?

为什么不使用Genymotion进行测试,它是一个很好的模拟器,支持位置服务,非常容易使用。