只需在
ActivityCompat.requestPermissions(...)通话中包含所有4个权限,Android就会像你提到的那样自动将它们分页。
我有一个帮助程序方法来检查多个权限,看看是否其中的任何一个都不被授予。
public static boolean hasPermissions(Context context, String... permissions) { if (context != null && permissions != null) { for (String permission : permissions) { if (ActivityCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED) { return false; } } } return true;}Or in Kotlin:
fun hasPermissions(context: Context, vararg permissions: String): Boolean = permissions.all { ActivityCompat.checkSelfPermission(context, it) == PackageManager.PERMISSION_GRANTED}然后,只需发送所有权限即可。Android只会询问需要的东西。
// The request pre used in ActivityCompat.requestPermissions()// and returned in the Activity's onRequestPermissionsResult()int PERMISSION_ALL = 1; String[] PERMISSIONS = { android.Manifest.permission.READ_CONTACTS, android.Manifest.permission.WRITE_CONTACTS, android.Manifest.permission.WRITE_EXTERNAL_STORAGE, android.Manifest.permission.READ_SMS, android.Manifest.permission.CAMERA};if (!hasPermissions(this, PERMISSIONS)) { ActivityCompat.requestPermissions(this, PERMISSIONS, PERMISSION_ALL);}


