我正在尝试请求ACCESS_FINE_LOCATION权限以获取用户的当前位置.
我的日志记录表明我的应用程序在查询时当前没有此权限ContextCompat.checkSelfPermission(),但是在ActivityCompat.requestPermissions()显示任何内容时都显示.
我的谷歌地图代码(实施OnMapReadyCallback和ActivityCompat.OnRequestPermissionsResultCallback())是在FragmentActivity.
我已经设法让该requestPermissions()功能在应用程序中的其他活动中成功运行,它只是带有Google地图的那个.放置在onCreate()方法中Activity或在onMapReady()(需要去的地方)时它不起作用.
if(ContextCompat.checkSelfPermission(LocationActivity.this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
Log.d(TAG, "not granted");
final String[] permissions = new String[] {android.Manifest.permission.ACCESS_FINE_LOCATION};
if(ActivityCompat.shouldShowRequestPermissionRationale(this, android.Manifest.permission.ACCESS_FINE_LOCATION)) {
Log.d(TAG, "rationale");
// Explain to the user why permission is required, then request again
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("We need permissions")
.setCancelable(false)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
ActivityCompat.requestPermissions(LocationActivity.this, permissions, 1);
} …Run Code Online (Sandbox Code Playgroud) java android google-maps android-fragments android-permissions