Java ANDROID:权限请求代码未出现
我相信这有一个非常简单的解释,但它让我感到困惑。对于API 23的新更新,您必须在清单和实际代码中声明权限。然而,我试图做的事情的请求代码并没有出现 这是我的舱单:Java ANDROID:权限请求代码未出现,java,android,permissions,android-6.0-marshmallow,Java,Android,Permissions,Android 6.0 Marshmallow,我相信这有一个非常简单的解释,但它让我感到困惑。对于API 23的新更新,您必须在清单和实际代码中声明权限。然而,我试图做的事情的请求代码并没有出现 这是我的舱单: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.ryanfolz.textscrabble"> <uses-
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.ryanfolz.textscrabble">
<uses-permission android:name="android.permission.READ_SMS"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
但是,“请求\代码\请求\权限”不会链接到任何数值。事实上,自动完成中也没有出现请求代码
有人知道为什么不显示此代码以及如何修复它吗?您必须为
REQUEST\u code\u ASK\u PERMISSIONS
指定任意值。您应该将REQUEST\u code\u ASK\u PERMISSIONS
声明为一个常量,具有任意数值,如
public final int REQUEST\u code\u ASK\u PERMISSIONS=1001代码>
此值用于知道在onRequestPermissionsResult
中允许和管理哪些权限。i、 例如,在同一活动中,您在两种不同的情况下请求权限,而您只有一个onRequestPermissionsResult
方法。因此,您必须区分在onRequestPermissionsResult
中捕获的结果
因此,如果您有两个请求,比如SMS和WAKE_LOCK,您将使用两个请求代码进行请求,比如:
public final int REQUEST_CODE_SMS_PERMISSIONS = 1001;
public final int REQUEST_CODE_WAKELOCK_PERMISSIONS = 1002;
这样您就可以像这样在onRequestPermissionsResult
中管理结果
@Override
public void onRequestPermissionsResult(final int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
switch(requestCode){
case REQUEST_CODE_SMS_PERMISSIONS:
//Code for handling SMS Permission results
break;
case REQUEST_CODE_WAKELOCK_PERMISSIONS:
//Code for handling WAKE_LOCK Permission results
break;
}
}
您必须为REQUEST\u code\u ASK\u PERMISSIONS
指定任意值。您应该将REQUEST\u code\u ASK\u PERMISSIONS
声明为一个常量,具有任意数值,如
public final int REQUEST\u code\u ASK\u PERMISSIONS=1001代码>
此值用于知道在onRequestPermissionsResult
中允许和管理哪些权限。i、 例如,在同一活动中,您在两种不同的情况下请求权限,而您只有一个onRequestPermissionsResult
方法。因此,您必须区分在onRequestPermissionsResult
中捕获的结果
因此,如果您有两个请求,比如SMS和WAKE_LOCK,您将使用两个请求代码进行请求,比如:
public final int REQUEST_CODE_SMS_PERMISSIONS = 1001;
public final int REQUEST_CODE_WAKELOCK_PERMISSIONS = 1002;
这样您就可以像这样在onRequestPermissionsResult
中管理结果
@Override
public void onRequestPermissionsResult(final int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
switch(requestCode){
case REQUEST_CODE_SMS_PERMISSIONS:
//Code for handling SMS Permission results
break;
case REQUEST_CODE_WAKELOCK_PERMISSIONS:
//Code for handling WAKE_LOCK Permission results
break;
}
}
我有一个类似的问题,当我必须请求权限时,我只定义了一个名为request_CODE的整数。比如:
final int REQUEST_CODE = 100;
然后我打电话:
ActivityCompat.requestPermissions(MainActivity.this,
新字符串[]{“android.permission.READ_SMS”},请求代码)
然后在请求权限调用时,我处理请求代码是否等于请求代码整数
所以只需定义一个整数来调用权限
可能不是您正在寻找的确切解决方案,但它是有效的。我有一个类似的问题,当我必须请求权限时,我只定义了一个整数,称为request\u CODE。比如:
final int REQUEST_CODE = 100;
然后我打电话:
ActivityCompat.requestPermissions(MainActivity.this,
新字符串[]{“android.permission.READ_SMS”},请求代码)
然后在请求权限调用时,我处理请求代码是否等于请求代码整数
所以只需定义一个整数来调用权限
可能不是您正在寻找的确切解决方案,但它很有效。好吧,您需要自己定义REQUEST\u code\u ASK\u PERMISSIONS
。这是您的代码,用于将一个权限请求与您在此活动中可能提出的任何其他权限请求区分开来。您需要自己定义request\u code\u ASK\u PERMISSIONS
。这是您的代码,用于将一个权限请求与您在此活动中可能提出的任何其他权限请求区分开来。