【发布时间】:2023-04-04 04:43:01
【问题描述】:
这是我获取位置的代码:
LocationManager locationManager = (LocationManager) getApplicationContext().getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
String provider = locationManager.getBestProvider(criteria, true);
Location location = locationManager.getLastKnownLocation(provider);
final double latitude = location.getLatitude();
final double longitude = location.getLongitude();
当我在 Android 4.4.2 上测试和调试它时,它运行良好并且可以调试,但是当它在 Android 8 上运行时,代码似乎无法执行并且不可调试
我怎样才能让它在 Android 8 上运行?
【问题讨论】:
-
您是否请求了运行时权限
ACCESS_FINE_LOCATION或ACCESS_COARSE_LOCATION? -
@JaydipKalkani 是的,先生,正如我告诉它在 android 4.4.2 中执行的那样
-
发布 android 8 错误日志
-
@erfan 运行时权限与普通权限不同,Android 6.0以下不需要
-
是的,我知道它在 android 4.4.2 上运行良好,但从 android 6.0 开始,谷歌添加了运行时权限概念。所以,我向您确认您是否使用“requestPermissions()”方法请求了运行时权限?如果您不这样做,请参考this。
标签: android location android-location