我搜索了如何初始化requestPermissions并找到以下代码:
if (ActivityCompat.checkSelfPermission((Activity)mContext,
android.Manifest.permission.ACCESS_FINE_LOCATION) !=
PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions((Activity)mContext, new String[]{
android.Manifest.permission.ACCESS_FINE_LOCATION
}, Integer constant required);
它需要第三个参数,即FINE LOCATION的Inter常数。 我找不到。请帮帮我。
答案 0 :(得分:0)
第三个参数是RequestCode。
特定于应用程序的请求代码与报告给onRequestPermissionsResult(int,String [],int [])的结果相匹配。
应该是> = 0。
有关详细信息,请参阅此内容。 ActivityCompat.requestPermissions()
希望它会对你有所帮助。
答案 1 :(得分:0)
第三个参数是权限的requestCode, 你可以创造它不变 如下所示
private int STORAGE_PERMISSION_CODE = 23; //you can pass any code here
ActivityCompat.requestPermissions((Activity)mContext, new String[]{
android.Manifest.permission.ACCESS_FINE_LOCATION}, STORAGE_PERMISSION_CODE);
此参数用于与onRequestPermissionsResult方法的第一个参数的requestCode进行比较,同时覆盖它。
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
//Checking the request code of our request
if (requestCode == STORAGE_PERMISSION_CODE) {
//If permission is granted
if (grantResults.length > 0 && grantResults[0] == 0) {
//Displaying a toast
Toast.makeText(context, "Permission granted now.", Toast.LENGTH_LONG).show();
} else {
//Displaying another toast if permission is not granted
Toast.makeText(context, "Permission denied.",Toast.LENGTH_LONG).show();
}
}
}