Android6.0运行时权限

    xiaoxiao2021-04-13  28

    一.概述 Android6.0发布一年多时间,带来了一些新的api变化,越来越多的手机倾向于使用Android6.0以上的系统,随之改变的是越来越多的项目要适配6.0的系统。

    本篇文章目的就是对运行时权限处理的一个介绍,以及对目前权限相关的库的一些了解。

    二.实现方式

    原生实现方式

    2.使用MPermissions框架

    private static final int MY_PERMISSIONS_REQUEST_CAMERA =1; @OnClick({R.id.bt_scan_qrcode}) public void onViewClicked(View view) { switch (view.getId()) { case R.id.bt_scan_qrcode: //使用MPermissions来动态申请权限 MPermissions.requestPermissions(QRCodeActivity.this, MY_PERMISSIONS_REQUEST_CAMERA, Manifest.permission.CAMERA); break; } } @Override public void onRequestPermissionsResult( int requestCode, String[] permissions,int[] grantResults{ MPermissions.onRequestPermissionsResult(this, requestCode, permissions, grantResults); super.onRequestPermissionsResult(requestCode, permissions, grantResults); } @PermissionGrant(MY_PERMISSIONS_REQUEST_CAMERA) public void requestSdcardSuccess(){ Toast.makeText(this, "GRANT ACCESS SDCARD!", Toast.LENGTH_SHORT).show(); startActivity(new Intent(this, ScanQRCodeActivity.class)); } @PermissionDenied(MY_PERMISSIONS_REQUEST_CAMERA) public void requestSdcardFailed(){ Toast.makeText(this, "DENY ACCESS SDCARD!", private static final int MY_PERMISSIONS_REQUEST_CAMERA= 1; @OnClick({R.id.bt_scan_qrcode}) public void onViewClicked(View view) { switch (view.getId()) { case R.id.bt_scan_qrcode: //使用MPermissions来动态申请权限 MPermissions.requestPermissions(QRCodeActivity.this, MY_PERMISSIONS_REQUEST_CAMERA, Manifest.permission.CAMERA); break; } @Override public void onRequestPermissionsResult( int requestCode, String[] permissions,int[] grantResults){ MPermissions.onRequestPermissionsResult(this, requestCode, permissions, grantResults); super.onRequestPermissionsResult(requestCode, permissions, grantResults); } @PermissionGrant(MY_PERMISSIONS_REQUEST_CAMERA) public void requestSdcardSuccess(){ Toast.makeText(this, "GRANT ACCESS SDCARD!", Toast.LENGTH_SHORT).show(); startActivity(new Intent(this, ScanQRCodeActivity.class)); } @PermissionDenied(MY_PERMISSIONS_REQUEST_CAMERA) public void requestSdcardFailed(){ Toast.makeText(this, "DENY ACCESS SDCARD!", Toast.LENGTH_SHORT).show(); } }

    用法简单明了,对于onRequestPermissionsResult所有的Activity都是一致的,所以可以放到BaseActivity中去。此外,在Fragment中使用的方式一致,详见库(https://github.com/hongyangAndroid/MPermissions.)

    参考 (http://blog.csdn.net/lmj623565791/article/details/50709663) (http://blog.csdn.net/m0_37168878/article/details/64437654)

    转载请注明原文地址: https://ju.6miu.com/read-668839.html

    最新回复(0)