另一台设备上的设备位置为空(GoogleMaps活动)

时间:2018-08-04 19:34:15

标签: java android google-maps

我目前正在第二个Android应用程序上工作,该应用程序包含Google Maps活动。在此活动中,我想向用户显示他们的当前位置。我设法做到了,它可以在我的两个设备(华为P smart和Galaxy S5)上运行。我还向我的朋友发送了该应用的APK,并在他的设备(华为P9 Lite)上调用task.getResult()后,当前位置返回null。在他的设备上,该方法将始终跳转到else语句(意味着currentLocation == null)。我使用了以下方法。

private void getDeviceLocation() {
    Log.d(TAG, "getDeviceLocation: getting the devices current location");

    try {
        mFusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this);
            mFusedLocationProviderClient.getLastLocation()
            .addOnSuccessListener(this, new OnSuccessListener<Location>() {
                @Override
                public void onSuccess(Location currentLocation) {
                    Log.d(TAG, "onComplete: found location!");
                    if (currentLocation != null) {

                        moveCamera(new LatLng(currentLocation.getLatitude(), currentLocation.getLongitude()),
                                DEFAULT_ZOOM);

                    } else {
                        Log.d(TAG, "onComplete: current location is null");
                        Toast.makeText(MapsActivity.this, "unable to get current location", Toast.LENGTH_SHORT).show();
                    }
                }
            });

    } catch (SecurityException e) {
        Log.e(TAG, "getDeviceLocation: SecurityException: " + e.getMessage());
    }
}

我已经尝试过/做了以下事情:

  • 将所有必需的权限/功能添加到清单中
  • 尝试在这里找到的其他解决方案,据我所知,没有一个在不同设备上显示出不同的结果
  • 将minSDK更改为17(之前为23)。
  • 添加nullcheck并尝试并捕获

因为我在自己的设备上没有问题,并且在logcat的设备上找不到任何显着的东西(因为它们都在我的设备上工作),所以我很难理解为什么会这样。

0 个答案:

没有答案