Android 6.0运行时权限
Android 6.0这个版本引入了一种新的权限模式———Runtime Permissions。用户可以在程序运行时来管理应用程序的权限。在这种模式能够让用户更好的了解和控制权限。
对于以Android 6.0(API级别23)或更高的版本为目标平台的应用,必须在运行时检查和请求权限。下面具体介绍一下如何在运行时来管理权限。
检查权限
当应用需要危险权限的时候,每次执行都必须要查自己是否拥有该权限。因为不能保证应用每次使用该功能的时候都具有权限。以下是检测应用是否具有相机的权限。
1 | int permissionCheck = ContextCompat.checkSelfPermission(thisActivity, |
如果应用具有该权限,该方法返回PackageManager.PERMISSION_GRANTED,并且应用可以继续操作。如果应用不具有此权限,则返回PERMISSION_DENIED,此时应用必须向用户请求该权限。
请求权限
如果应用没有权限,则需要调用 requestPermissions()
方法来请求权限,以下是检测并请求相机的权限代码:
1 | if (ContextCompat.checkSelfPermission(context, |
处理请求权限的回调
当应用请求权限时,系统会向用户显示一个权限对话框,用户做出响应的时候,系统会回调onRequestPermissionsResult()
方法,通过 requestPermissions()
方法传递的请求码,来作出相应的回应。
1 | @Override |
请求多个权限实例
写了一个简单的例子供以后复习使用
1 | public class SplashActivity extends Activity implements ActivityCompat.OnRequestPermissionsResultCallback{ |