tva*_*ith 0 performance android android-layout android-fragments android-studio
请帮助我获取权限“ WRITE_EXTERNAL_STORAGE”和“ WRITE_SETTINGS”的请求代码。还请让我知道请求代码的来源。
小智 8
一个简单的演示:
// Here, thisActivity is the current activity
if (ContextCompat.checkSelfPermission(thisActivity,
Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(thisActivity,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
YourRequestCode);
}
Run Code Online (Sandbox Code Playgroud)
您可以设置YourRequestCode任何值,例如1。
您可以传递任何您想要的整数值作为请求代码。
请求代码的要点是您可以在onRequestPermissionsResult处理程序中区分不同的权限请求。文档示例如下:
@Override
public void onRequestPermissionsResult(int requestCode,
String permissions[], int[] grantResults) {
switch (requestCode) {
case MY_PERMISSIONS_REQUEST_READ_CONTACTS: {
// If request is cancelled, the result arrays are empty.
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// permission was granted, yay! Do the
// contacts-related task you need to do.
} else {
// permission denied, boo! Disable the
// functionality that depends on this permission.
}
return;
}
// other 'case' lines to check for other
// permissions this app might request.
}
}
Run Code Online (Sandbox Code Playgroud)
这里MY_PERMISSIONS_REQUEST_READ_CONTACTS是一些包含请求代码的常量变量。请求行可能如下所示:
int MY_PERMISSIONS_REQUEST_READ_CONTACTS = 1337;
ActivityCompat.requestPermissions(context,
new String[]{Manifest.permission.READ_CONTACTS},
MY_PERMISSIONS_REQUEST_READ_CONTACTS );
Run Code Online (Sandbox Code Playgroud)