我能够成功注册地理围栏,但仅在启用GPS时才能注册。当GPS被禁用时,我得到错误GEOFENCE_NOT_AVAILABLE(1000)。因为“刚才”注册它并不重要。我不想打扰用户(首先启用GPS)弹出窗口。
当用户最终启用GPS时,有没有办法注册回叫以通知?或者当位置可用于重复地理围栏注册时,如何执行代码的任何其他方式。
注意:我需要GoogleApiClient(Google Play服务> 6.5)的解决方案,但LocationClient(< 6.5)上存在同样的问题。
感谢。
mGoogleApiClient = new GoogleApiClient.Builder(mContext)
.addApi(LocationServices.API)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
mGoogleApiClient.connect();
...
@Override
public void onConnected(Bundle bundle) {
PendingResult<Status> result = LocationServices.GeofencingApi.addGeofences(mGoogleApiClient, geofencesToAdd, mGeofencePendingIntent);
result.setResultCallback(new ResultCallback<Status>() {
@Override
public void onResult(Status status) {
if (status.isSuccess()) {
// Successfully registered
} else if (status.hasResolution()) {
// Google has resolution
} else {
// Error
// status.getStatusCode() == LocationStatusCodes.GEOFENCE_NOT_AVAILABLE; !!
}
}
});
}