间隔5
位置更改方法每3秒触发一次
. 我试着改变优先级,但都一样。我在理解它的逻辑时犯了什么错误?提前感谢您的指导。
mGoogleApiClient = new GoogleApiClient.Builder(getContext())
.addApi(LocationServices.API)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
locationRequest = new LocationRequest()
//tried high accuracy also thinking it might matter with priority but doesn't effect
.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY)
.setInterval(5 * 1000);
触发位置请求的方法。
private void requestLocation() {
if (Build.VERSION.SDK_INT >= 23) {
if (getActivity().checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED &&
getActivity().checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED)
LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, locationRequest, locationListener);
else
LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, locationRequest, locationListener);
Log.d(TAG, "requestLocation: ");
}
}
locationListener实例。
LocationListener locationListener = new LocationListener() {
@Override
public void onLocationChanged(Location location) {
//log shows this triggering at every 3 seconds.
Log.d(TAG, "onLocationChanged: ");
if (mGoogleApiClient.isConnected()) {
longitude = location.getLongitude();
latitude = location.getLatitude();
}
}
};