Android Studio 无法识别运行时权限代码
Android Studio is not recognizing runtime permission code
我正在尝试实现运行时权限(针对 SDK 24),但 Android Studio 似乎无法识别所有代码。
一切正常,直到我到达“.READ_CONTACTS”或“.CAMERA”。此外,"requestPermissions." 也会变成红色。我试过导入各种东西,例如 "android.support.v4.content.ContextCompat" 无济于事。
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CONTACTS) == PackageManager.PERMISSION_GRANTED){
yeahReadContacts();
}else{
requestPermissions. //This and "READ_CONTACTS" are red.
}}
此外,我是从自定义对话框 class 调用它的,但我认为这应该不是问题,因为这些应该是 "run-time" 权限,对吧?
而不是尝试这个例子。
它非常适合我..
https://learnpainless.com/android/marshmallows/runtime-permission-example-good-practice-real-example
在@Enzokie 的帮助下,我解决了这两个问题。
Manifest.permission.READ_CONTACTS 的 .READ_CONTACTS 部分,因为我以某种方式创建了一个名为 Manifest.java 的文件,并且需要将其重命名为 ManifestNot.java 之类的名称,因为它是与清单库功能冲突。
其次,库函数 requestPermissions 是红色的,因为我是从 Dialog 调用它的,需要在它前面加上 mActivity,这是我在我的对话框的构造方法:
Activity mActivity; //Declared
//The constructor
public AddEntityDialog(Context context) {
super(context);
mActivity = (Activity) context;
}
当然,我需要定义 requestPermissions 所需的几个参数,如下所示,但随后我能够编写代码而不会变红。
String[] perms = {"android.permission.READ_CONTACTS"};
int permsRequestCode = 100; //This can be any number
那么最后一行就不再是红色了:
mActivity.requestPermissions(perms, permsRequestCode);
这里有一段很好的代码以获得更好的上下文:
public void readContacts(){
if (ContextCompat.checkSelfPermission(getContext(), Manifest.permission.READ_CONTACTS) == PackageManager.PERMISSION_GRANTED){
yeahReadContacts();
}else{
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){
mActivity.requestPermissions(perms, permsRequestCode);
}
}
}
我遇到了同样的错误。问题是这样解决的:
只需更改:
Manifest.permission.READ_CONTACTS
至
amdroid.Manifest.permission.READ_CONTACTS
我正在尝试实现运行时权限(针对 SDK 24),但 Android Studio 似乎无法识别所有代码。
一切正常,直到我到达“.READ_CONTACTS”或“.CAMERA”。此外,"requestPermissions." 也会变成红色。我试过导入各种东西,例如 "android.support.v4.content.ContextCompat" 无济于事。
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CONTACTS) == PackageManager.PERMISSION_GRANTED){
yeahReadContacts();
}else{
requestPermissions. //This and "READ_CONTACTS" are red.
}}
此外,我是从自定义对话框 class 调用它的,但我认为这应该不是问题,因为这些应该是 "run-time" 权限,对吧?
而不是尝试这个例子。 它非常适合我..
https://learnpainless.com/android/marshmallows/runtime-permission-example-good-practice-real-example
在@Enzokie 的帮助下,我解决了这两个问题。
Manifest.permission.READ_CONTACTS 的 .READ_CONTACTS 部分,因为我以某种方式创建了一个名为 Manifest.java 的文件,并且需要将其重命名为 ManifestNot.java 之类的名称,因为它是与清单库功能冲突。
其次,库函数 requestPermissions 是红色的,因为我是从 Dialog 调用它的,需要在它前面加上 mActivity,这是我在我的对话框的构造方法:
Activity mActivity; //Declared
//The constructor
public AddEntityDialog(Context context) {
super(context);
mActivity = (Activity) context;
}
当然,我需要定义 requestPermissions 所需的几个参数,如下所示,但随后我能够编写代码而不会变红。
String[] perms = {"android.permission.READ_CONTACTS"};
int permsRequestCode = 100; //This can be any number
那么最后一行就不再是红色了:
mActivity.requestPermissions(perms, permsRequestCode);
这里有一段很好的代码以获得更好的上下文:
public void readContacts(){
if (ContextCompat.checkSelfPermission(getContext(), Manifest.permission.READ_CONTACTS) == PackageManager.PERMISSION_GRANTED){
yeahReadContacts();
}else{
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){
mActivity.requestPermissions(perms, permsRequestCode);
}
}
}
我遇到了同样的错误。问题是这样解决的:
只需更改:
Manifest.permission.READ_CONTACTS
至
amdroid.Manifest.permission.READ_CONTACTS