棉花糖许可

Marshmallow permission

我正在尝试检查 activity 中的权限,如下所示,

int permission = ContextCompat.checkSelfPermission(this, Manifest.permission.GET_ACCOUNT);

但是我在 GET_ACCOUNT 作为 Cannot resolve symbol 'GET_ACCOUNT' 收到错误。 请帮助我应该添加什么代码来解决这个问题?

提前致谢。

应该是

Manifest.permission.GET_ACCOUNTS

而不是

Manifest.permission.GET_ACCOUNT  

这样试试

int permission = ContextCompat.checkSelfPermission(this,Manifest.permission.GET_ACCOUNTS);

不要忘记在您的清单上添加权限

<uses-permission android:name="android.permission.GET_ACCOUNTS"/>

将此库导入您的 class

import android.Manifest;

首先GET_ACCOUNT在android.Manifest.permission中没有定义,是GET_ACCOUNTS

其次,将您的清单文件更改为使用 GET_ACCOUNTS

<uses-permission android:name="android.permission.GET_ACCOUNTS" />

然后在你的代码文件中,即 java 文件中这样写。

ContextCompat.checkSelfPermission(this, android.Manifest.permission.GET_ACCOUNTS);

检查文档 GET_ACCOUTNS

以下代码对我有用,

将下面的代码声明为:

public static final int PERMISSIONS_REQUEST_GET_ACCOUNT = 133; // any number

在您的 onCreate 方法中调用以下代码:

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){
        if(ContextCompat.checkSelfPermission(Activity.this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED){
            ActivityCompat.requestPermissions(SplashActivity.this,
                    new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION,
                            Manifest.permission.CAMERA,
                            Manifest.permission.READ_EXTERNAL_STORAGE,
                            Manifest.permission.WRITE_EXTERNAL_STORAGE,
                            Manifest.permission.GET_ACCOUNTS},
                    PERMISSIONS_REQUEST_GET_ACCOUNT);
        }else{
            //furtherCode
        }
    }else{
        //furtherCode
    }

在 onRequestPermissionsResult 方法中,

@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    switch(requestCode){
        case PERMISSIONS_REQUEST_GET_ACCOUNT :
            if(grantResults[0] == PackageManager.PERMISSION_GRANTED){
                Toast.makeText(this, "Granted", Toast.LENGTH_SHORT).show();
            }else{
                Toast.makeText(this, "No such permission to access account!", Toast.LENGTH_SHORT).show();
            }
            break;
    }
}