棉花糖许可

时间:2016-09-27 06:34:19

标签: android android-6.0-marshmallow android-permissions android-studio-2.1

我正在尝试检查以下活动的权限,

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

但我在GET_ACCOUNT收到Cannot resolve symbol 'GET_ACCOUNT'错误。 请帮助我添加什么代码来修复此问题?

提前致谢。

3 个答案:

答案 0 :(得分:1)

应该是

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"/>

在您的班级中导入此库

import android.Manifest;

答案 1 :(得分:0)

首先在android.Manifest.permission中定义了GET_ACCOUNT,它是GET_ACCOUNTS

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

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

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

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

检查文档GET_ACCOUTNS

答案 2 :(得分:0)

以下代码对我有用,

在代码下面声明为:

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;
    }
}