Android-LocationManager请求LocationUpdates回调不';我不吃棒棒糖
我在棒棒糖设备上使用Android-LocationManager请求LocationUpdates回调不';我不吃棒棒糖,android,geolocation,locationmanager,fusedlocationproviderapi,Android,Geolocation,Locationmanager,Fusedlocationproviderapi,我在棒棒糖设备上使用requestLocationUpdates时遇到问题。未调用LocationListener()回调。我也尝试过使用api,但回调也不起作用。(权限、清单、GPS等所有依赖项都已启用) 这是我的LocationManager代码 这是针对FusedLocationProviderClient的 我试着到处寻找解决办法,但我运气不好。但问题是,它适用于其他Android版本,如牛轧糖/Oreo。据我所知,这两个API对棒棒糖没有任何问题(请CMIIW) 谢谢您应该使用goog
requestLocationUpdates
时遇到问题。未调用LocationListener()
回调。我也尝试过使用api,但回调也不起作用。(权限、清单、GPS等所有依赖项都已启用)
这是我的LocationManager代码
这是针对FusedLocationProviderClient的
我试着到处寻找解决办法,但我运气不好。但问题是,它适用于其他Android版本,如牛轧糖/Oreo。据我所知,这两个API对棒棒糖没有任何问题(请CMIIW)
谢谢您应该使用google api客户端进行持续更新和准确的结果GPS可能无法在室内工作,基于网络的位置提供商可能需要SIM卡(我不确定),使用
LocationManager
是完全合法的,尽管google当然推荐使用较新的fancier api。当然,如果你正在使用几种不同的设备进行测试,其中一些设备的GPS芯片和天线可能比其他设备更好,所以在室外或靠近打开的阳台门之类的地方进行测试。嗨,伙计们,谢谢你们抽出时间。谢谢。不知怎的,我使用的模拟器就是不起作用。但当我在真正的设备上试用时,它是有效的。我不知道是什么问题,我怀疑是硬件问题。
LocationManager locationManager = (LocationManager) getActivity().getSystemService(Context.LOCATION_SERVICE);
Location lastKnownLocation = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0,
new LocationListener() {
@Override
public void onLocationChanged(Location location) {
Log.d("test", "GOTCHA");
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
});
FusedLocationProviderClient fusedLocationProviderClient = new FusedLocationProviderClient(getContext());
LocationCallback mLocationCallback = new LocationCallback() {
@Override
public void onLocationResult(LocationResult locationResult) {
super.onLocationResult(locationResult);
Log.d("test", "GOTCHA");
if (locationResult != null) {
Location currentLocation = locationResult.getLastLocation();
handleCurrentLocation(currentLocation);
fusedLocationProviderClient.removeLocationUpdates(this);
} else {
failToGetLocationHandler("Fail to initiate request location ...");
}
}
};
fusedLocationProviderClient.requestLocationUpdates(mLocationRequest, mLocationCallback, null);