首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Marshmallow权限

Marshmallow权限
EN

Stack Overflow用户
提问于 2016-09-27 14:34:19
回答 3查看 453关注 0票数 1

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

代码语言:javascript
复制
int permission = ContextCompat.checkSelfPermission(this, Manifest.permission.GET_ACCOUNT);

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

提前谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-01-03 19:52:57

下面的代码对我有效,

将以下代码声明为:

代码语言:javascript
复制
public static final int PERMISSIONS_REQUEST_GET_ACCOUNT = 133; // any number

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

代码语言:javascript
复制
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方法中,

代码语言:javascript
复制
@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;
    }
}
票数 0
EN

Stack Overflow用户

发布于 2016-09-27 14:38:41

它应该是

代码语言:javascript
复制
Manifest.permission.GET_ACCOUNTS

而不是

代码语言:javascript
复制
Manifest.permission.GET_ACCOUNT  

试着这样做

代码语言:javascript
复制
int permission = ContextCompat.checkSelfPermission(this,Manifest.permission.GET_ACCOUNTS);

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

代码语言:javascript
复制
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>

在您的类中导入此库

代码语言:javascript
复制
import android.Manifest;
票数 1
EN

Stack Overflow用户

发布于 2016-09-27 14:55:31

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

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

代码语言:javascript
复制
<uses-permission android:name="android.permission.GET_ACCOUNTS" />

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

代码语言:javascript
复制
ContextCompat.checkSelfPermission(this, android.Manifest.permission.GET_ACCOUNTS);

查看文档GET_ACCOUTNS

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39717592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档