如何解决Mapbox LocationEngineResult.getLastLocation 总是返回 null
我正在创建一个应该使用 mapbox
返回设备位置的cordova 插件。问题是 LocationEngineResult.getLastLocation()
总是返回 null
。
我使用 locationEngine
通过 locationCallback
检索位置。
还会检查权限。
***
LocationEngine locationEngine;
AltGeolocationLocationCallback callback = new AltGeolocationLocationCallback(this);
***
@SuppressLint("MissingPermission")
private void initLocationEngine() {
locationEngine = LocationEngineProvider.getBestLocationEngine(this.cordova.getActivity().getApplicationContext());
LocationEngineRequest request = new LocationEngineRequest.Builder(DEFAULT_INTERVAL_IN_MILLISECONDS)
.setPriority(LocationEngineRequest.PRIORITY_HIGH_ACCURACY)
.setMaxWaitTime(DEFAULT_MAX_WAIT_TIME).build();
locationEngine.requestLocationUpdates(request,callback,Looper.getMainLooper());
locationEngine.getLastLocation(callback);
}
private static class AltGeolocationLocationCallback extends Activity
implements LocationEngineCallback<LocationEngineResult> {
private final WeakReference<AltGeolocation> activityWeakReference;
private AltGeolocationLocationCallback contexto = this;
AltGeolocationLocationCallback(AltGeolocation activity) {
this.activityWeakReference = new WeakReference<>(activity);
}
@Override
public void onSuccess(LocationEngineResult result) {
AltGeolocation activity = activityWeakReference.get();
if (activity != null) {
Location location = result.getLastLocation();
Log.d(LOG_TAG,"result: " + location );
}
}
@Override
public void onFailure(@NonNull Exception exception) {
AltGeolocation activity = activityWeakReference.get();
}
@Override
public void onPointerCaptureChanged(boolean hasCapture) {
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。