android app开发遇到的一些问题(二)
2016-07-07 18:57
399 查看
android 6.0 动态权限
Special Permissions- 特殊权限SYSTEM_ALERT_WINDOW
WRITE_SETTING
这两个权限比较特殊,不能通过代码申请的方式获取,必须用户打开软件设置页手动打开才可以授权。
if (Build.VERSION.SDK_INT >= 23) { if(!Settings.canDrawOverlays(this)) { Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION); startActivity(intent); return; } else { //绘ui代码, 这里说明6.0系统已经有权限了 } } else { //绘ui代码,这里android6.0以下的系统直接绘出即可 }
Dangerous Permissions- 危险权限
这部分权限可以通过代码申请获取
//获取 if (Build.VERSION.SDK_INT >= 23) { int checkPermission = ContextCompat.checkSelfPermission(HomeSettingActivity.this, android.Manifest.permission.READ_PHONE_STATE); if (checkOverLayPermission != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(HomeSettingActivity.this, new String[]{android.Manifest.permission.READ_PHONE_STATE}, READ_PHONE_STATE_REQ_CODE); return; } }else{ //SDK_INT < 23 code handler } ..... @Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); if (READ_PHONE_STATE_REQ_CODE == requestCode) { if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { updateitemView.setCheckBox(true); TelephonyManager tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE); String simSerialNumber = tm.getSimSerialNumber(); PrefUtil.setStringPref(HomeSettingActivity.this, GlobalConstant.PREF_SIM_SERIAL, simSerialNumber); } else { ToastUtil.showDialog(this, "必须统一打开权限才可以"); } } }
相关文章推荐
- VR虚拟现实&AR增强现实编程(2):开发环境Unity3D简介
- Android 全局异常捕获之CrashHandler
- Android之定向广播
- iOS开发之OC篇(1)——初识iOS开发
- 详解Swift中的数据类型类型转换
- Android异常解决--A WebView method was called on thread 'JavaBridge'. All WebView methods must be called
- 浅谈Android开发中内存泄露与优化-------其一
- Objective-C——Block的使用
- 随记
- 7.Phong 和 BlinnPhong
- Android 将View 转化为bitmap 图片
- android之Activity的切换动画(进出动画)
- android时间组件TimePicker与DatePicker
- Android事件分发
- Android 使用ZXing扫描在部分手机上扫描变形解决办法
- 通过Button按钮调节亮度
- 【Android实战】EventBus 更少的代码 更好的体验
- Swift中Optional值的链式调用学习笔记
- 5分钟搞定android混淆
- iOS证书及描述文件制作流程