Android模拟地图点击位置似乎不起作用
我正在开发一个应用程序,它使用谷歌地图和谷歌地理围栏定位服务 为了进行测试,我想这样做,当我点击地图上的一个点时,Location客户端会得到该点的模拟位置。守则的有关部分如下: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
@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进行测试,它是一个很好的模拟器,支持位置服务,非常容易使用。