Android。提示访问设备的位置
Android. Prompt access device's location
在我的旧 Android(Samsung S3 mini)中,无需进行任何操作即可让我的应用程序使用 phone 的位置 (GPS)。
现在我使用的是带 Android 6.0 的 LG G4,它从未使用过 GPS。
我可以看到在waze之类的应用程序中,有一个提示"Allow Waze to access this device's location?"。我想我必须在启动我的应用程序之前做一些类似的事情来触发这个选项。
任何人都知道该怎么做。我不知道怎么问Google。
提前致谢。
在 android 6.0 上,您必须在运行时请求一些权限。这里有说明https://developer.android.com/training/permissions/requesting.html
Beginning in Android 6.0 (API level 23), users grant permissions to
apps while the app is running, not when they install the app.
为了在运行时请求权限,你应该做这样的事情(在你想使用 GPS 之前):
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {
// Check Permissions Now
private static final int REQUEST_LOCATION = 2;
if (ActivityCompat.shouldShowRequestPermissionRationale(this,
Manifest.permission.ACCESS_FINE_LOCATION)) {
// Display UI and wait for user interaction
} else {
ActivityCompat.requestPermissions(
this, new String[]{Manifest.permission.LOCATION_FINE},
ACCESS_FINE_LOCATION);
}
} else {
// permission has been granted, continue as usual
Location myLocation =
LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient);
}
这里有 GPS 的例子https://developers.google.com/android/guides/permissions
在我的旧 Android(Samsung S3 mini)中,无需进行任何操作即可让我的应用程序使用 phone 的位置 (GPS)。 现在我使用的是带 Android 6.0 的 LG G4,它从未使用过 GPS。 我可以看到在waze之类的应用程序中,有一个提示"Allow Waze to access this device's location?"。我想我必须在启动我的应用程序之前做一些类似的事情来触发这个选项。 任何人都知道该怎么做。我不知道怎么问Google。 提前致谢。
在 android 6.0 上,您必须在运行时请求一些权限。这里有说明https://developer.android.com/training/permissions/requesting.html
Beginning in Android 6.0 (API level 23), users grant permissions to apps while the app is running, not when they install the app.
为了在运行时请求权限,你应该做这样的事情(在你想使用 GPS 之前):
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {
// Check Permissions Now
private static final int REQUEST_LOCATION = 2;
if (ActivityCompat.shouldShowRequestPermissionRationale(this,
Manifest.permission.ACCESS_FINE_LOCATION)) {
// Display UI and wait for user interaction
} else {
ActivityCompat.requestPermissions(
this, new String[]{Manifest.permission.LOCATION_FINE},
ACCESS_FINE_LOCATION);
}
} else {
// permission has been granted, continue as usual
Location myLocation =
LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient);
}
这里有 GPS 的例子https://developers.google.com/android/guides/permissions