【问题标题】:Marshmallow permission棉花糖许可
【发布时间】:2023-03-17 10:30:02
【问题描述】:

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

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

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

提前致谢。

【问题讨论】:

  • 不是GET_ACCOUNTS吗?使用S?
  • @Mike M:它只是 GET_ACCOUNT。
  • @Mike M:不,它不起作用
  • 检查您的清单导入。应该是import android.Manifest;。可能是你用你的项目包名导入的!

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


【解决方案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;

【讨论】:

  • 我在 onCreate() 方法@Anik Islam Abhi 中写了这一行
  • 添加 android.Manifest.permission.GET_ACCOUNTS 工作
  • 试试这个它可能是工作 stackoverflow.com/a/41221852/5488468
【解决方案2】:

第一个GET_ACCOUNT在android.Manifest.permission中没有定义,它是GET_ACCOUNTS

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

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

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

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

查看文档GET_ACCOUTNS

【讨论】:

    【解决方案3】:

    以下代码对我有用,

    将下面的代码声明为:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-02
      • 2018-09-08
      • 2016-03-15
      • 1970-01-01
      • 2017-05-12
      • 2019-01-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多