public class MainActivity extends AppCompatActivity { private List<String> missingPermission = new ArrayList<>(10); private static final String[] REQUIRED_PERMISSION_LIST = new String[]{ Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE, }; private final int REQUEST_PERMISSION_CODE = 12345; private final int REQUEST_QR_CAPTURE_CODE = 12000; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); checkAndRequestPermissions(); } /** * 检查权限是否缺失,并申请 */ private void checkAndRequestPermissions() { for (String eachPermission : REQUIRED_PERMISSION_LIST) { if (ContextCompat.checkSelfPermission(this, eachPermission) != PackageManager.PERMISSION_GRANTED) { missingPermission.add(eachPermission); } } if (missingPermission.isEmpty()) { onRequestPermissionsSuccess(); } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { ActivityCompat.requestPermissions(this, missingPermission.toArray(new String[missingPermission.size()]), REQUEST_PERMISSION_CODE); } } /** * 申请权限结果回调 */ @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); if (requestCode == REQUEST_PERMISSION_CODE) { for (int i = grantResults.length - 1; i >= 0; i--) { if (grantResults[i] == PackageManager.PERMISSION_GRANTED) { missingPermission.remove(permissions[i]); } } } if (missingPermission.isEmpty()) { onRequestPermissionsSuccess(); } else { finish(); } } /** * 完成权限申请 */ public void onRequestPermissionsSuccess() { FileUtil.createFolder(Constants.PATH_APP); } }
动态6.0以及以上动态申请权限
猜你喜欢
转载自blog.csdn.net/qq_39792615/article/details/103972061
今日推荐
周排行