如何按顺序请求 android 权限?

How to ask for android permissions in a sequential manner?

我正在尝试制作一个 android 应用程序,其中在下一个 activity 是 called.But 之前询问权限(对于 android 6.0 及更高版本)我尝试的时候,它转到下一个 activity 并返回,我看到权限是 asked.Is 有任何方法可以首先获得 运行 权限,只有在结束后,才转到下一个 activity?

仅在获得许可后才开始您的activity,否则请求许可。

if(Build.VERSION.SDK_INT>Build.VERSION_CODES.LOLLIPOP_MR1){
    // Use your own required permission here instead of WRITE_EXTERNAL_STORAGE
    if(!(getActivity().checkSelfPermission("android.permission.WRITE_EXTERNAL_STORAGE") == PackageManager.PERMISSION_GRANTED)){
        // Permission not already granted, Asking for permission
        String[] perms = {"android.permission.WRITE_EXTERNAL_STORAGE"};
        requestPermissions(perms, 200);
    }else {
        // Permission already granted, starting activity ...
        Intent i = new Intent(getApplicationContext(), YourActivity.class);
        startActivity(i);
    }
}

onRequestPermissionsResult() 当用户从对话框授予或拒绝权限时调用。可用于处理用户从权限提示中选择选项时的事件。

/**
Called when permission granted or denied
*/
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);

    switch (requestCode){
        case 200:{
            if(grantResults[0] == PackageManager.PERMISSION_GRANTED){
                // Permission granted, starting activity ...
                Intent i = new Intent(getApplicationContext(), YourActivity.class);
                startActivity(i);
            }else{
                Toast.makeText(ctx, "Permission Denied by user. Please grant access to continue.", Toast.LENGTH_SHORT).show();
            }
        }
    }
}