如何按顺序请求 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();
}
}
}
}
我正在尝试制作一个 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();
}
}
}
}