在android中请求权限代码

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


luc*_*rot 7

您可以传递任何您想要的整数值作为请求代码
请求代码的要点是您可以在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)