小编Rob*_*bin的帖子

ActivityCompat.requestPermissions不显示提示

我正在尝试请求ACCESS_FINE_LOCATION权限以获取用户的当前位置.

我的日志记录表明我的应用程序在查询时当前没有此权限ContextCompat.checkSelfPermission(),但是在ActivityCompat.requestPermissions()显示任何内容时都显示.

我的谷歌地图代码(实施OnMapReadyCallbackActivityCompat.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

7
推荐指数
1
解决办法
5639
查看次数