android 6.0 Runtime Permissions Check
2015-11-05 22:23
323 查看
Android 6.0 release
Android6.0 早已经发布了,可以立马更新了。可喜的是现在更新sdk冒失不需要翻墙了而且速度非常快。new Feature
运行时期的权限检查,意味着用户可以直接管理app想要获取的权限。所以在6.0及以上的版本每次我们在调用需要权限的api的时候都要进行检查用户是否已经授权了。通用的写法是这样的:
@Override public void onClick(View v) { //如果是Android 6.0 就必须进行运行时的权限检查 if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.M) { /**检查app时候已经获得授权了 * checkSelfPermission(permission) * 参数 :表示要检查的权限 * * 返回值: PackageManager.PERMISSION_GRANTED(已经授权) or * PackageManager.PERMISSION_DENIED (未授权) */ if(checkSelfPermission(Manifest.permission.READ_CONTACTS)== PackageManager.PERMISSION_GRANTED){ // doSth Toast.makeText(this,"用户已经授权了",Toast.LENGTH_SHORT).show(); }else{ //是否可以现用户展现授权信息ui if(shouldShowRequestPermissionRationale(Manifest.permission.READ_CONTACTS)){ Toast.makeText(this,"需要您的授权",Toast.LENGTH_SHORT).show(); } //请求授期 可以批量的申请 requestPermissions(new String[]{Manifest.permission.READ_CONTACTS},100); } }else{ // doSth Toast.makeText(this,"6.0以下不需要检查",Toast.LENGTH_LONG).show(); } }
调用 requestPermissions 方法之后会调用以下回调方法:
//授期请求返回和 onActivityResult 类似 @Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { if(requestCode==100){ boolean isAvaiable=true; //判断申请的权限是否都已经获得授权(可以批量申请) for (int isGrant:grantResults){ if(isGrant!=PackageManager.PERMISSION_GRANTED){ isAvaiable =false; break; } } if(isAvaiable){ Toast.makeText(this,"授权成功",Toast.LENGTH_SHORT).show(); }else{ Toast.makeText(this,"授权失败",Toast.LENGTH_SHORT).show(); } } super.onRequestPermissionsResult(requestCode, permissions, grantResults); }
相关文章推荐
- Android tips
- Android基础入门教程——8.3.15 Paint API之——Typeface(字型)
- Android对话框
- 【Android开发—智能家居系列】(四):UDP通信发送指令
- Android事件拦截/分发/响应 机制
- 【Android开发—智能家居系列】(三):手机连接WIFI模块
- Android IOS WebRTC 音视频开发总结(五十)-- 技术服务如何定价?
- Android 布局样式和主题
- Android开发手记(22) 传感器的使用
- Android案例(1)——美女拼图小游戏
- android手势操作事件处理
- Android开发&send email
- Android第三方服务(1):语音识别(1)
- 必懂java、android知识
- Android状态栏提醒——Notification
- Android电量监控
- 使用高德地图API开发定位插件
- Android读取通讯录联系人
- 【Android】多图选择器(支持图片预览 高效加载不怕OOM)
- Android学习笔记之Intent穿梭于各个Activity之间