我目前正在创建一个位置客户端,目前我有:
public void startUpdatingLocationProcess(Context context) {
parentContext = context;
if (mFusedLocationClient == null){
mFusedLocationClient = LocationServices.getFusedLocationProviderClient(parentContext);
LocationRequest mLocationRequest = new LocationRequest();
mLocationRequest.setInterval(5000);
mLocationRequest.setFastestInterval(5000);
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
if (ContextCompat.checkSelfPermission(parentContext, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED)
{
mFusedLocationClient.requestLocationUpdates(mLocationRequest, new LocationCallback(){
@Override
public void onLocationResult(LocationResult locationResult) {
onLocationChanged(locationResult.getLastLocation());
}
} , Looper.myLooper());
}
}
这是一个LocationApi类,我希望能在整个应用程序的生命周期内运行。由于这个应用程序有许多活动,所以我不想在每次销毁并创建新活动时“重新创建”请求。
FINE_LOCATION权限已允许并检查,logcat中没有错误,并且代码在创建mFusedLocationClient对象时运行requestLocationUpdates方法,但从未调用“onLocationResult”方法。
我是否遗漏了使用此API的某些内容?
} , Looper.myLooper());
- Brandonclient
是什么?还有startLocationService
方法是什么,successListener
在哪里? - Mohamad Mousheimish