兼容android 6.0以上获取设备编号等权限
android 6.0及以上版本,我们可以发现虽然在AndroidManifest.xml里面,增加
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
这个权限,但是还是无法通过
telephonyManager.getDeviceId()
获取手机设备编号的,那么就需要动态询问用户来获取。
这里给出解决方案:
/*** 获取设备编号 .*/private void getDeviceId(){TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);if(isMarshmallow()){if(checkSelfPermission(Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED){GlobalInfo.deviceId = telephonyManager.getDeviceId();}else{requestPermissions(new String[] { Manifest.permission.READ_PHONE_STATE },PERMISSION_REQUEST_READ_PHONE_STATE);}}else{GlobalInfo.deviceId = telephonyManager.getDeviceId();}}/*** isMarshmallow方法.* @return 是否是安卓23以上*/private boolean isMarshmallow() {return Build.VERSION.SDK_INT >= 23;}/*** 获取权限结果 .* @param requestCode .* @param permissions .* @param grantResults .*/@Overridepublic void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {switch (requestCode) {case PERMISSION_REQUEST_READ_PHONE_STATE:if ((grantResults.length > 0) && (grantResults[0] == PackageManager.PERMISSION_GRANTED)) {getDeviceId();} else {//Toast.makeText(this, "权限已被用户拒绝", Toast.LENGTH_SHORT).show();try {//另外一种方式获取作为设备编号String ANDROID_ID = Settings.System.getString(getContentResolver(), Settings.System.ANDROID_ID);CPGlobalInfo.terminalPhysicalNo = ANDROID_ID;CPGlobalInfo.deviceId = ANDROID_ID;}catch (Exception e){e.printStackTrace();}}break;default:break;}}
这里是动态获取Manifest.permission.READ_PHONE_STATE,其他一些权限也需要用户手动授权
总结需要用户手动获取的权限:
所属权限组 权限
日历 READ_CALENDAR
日历 WRITE_CALENDAR
相机 CAMERA
联系人 READ_CONTACTS
联系人 WRITE_CONTACTS
联系人 GET_ACCOUNTS
位置 ACCESS_FINE_LOCATION
位置 ACCESS_COARSE_LOCATION
麦克风 RECORD_AUDIO
电话 READ_PHONE_STATE
电话 CALL_PHONE
电话 READ_CALL_LOG
电话 WRITE_CALL_LOG
电话 ADD_VOICEMAIL
电话 USE_SIP
电话 PROCESS_OUTGOING_CALLS
传感器 BODY_SENSORS
短信 SEND_SMS
短信 RECEIVE_SMS
短信 READ_SMS
短信 RECEIVE_WAP_PUSH
短信 RECEIVE_MMS
存储 READ_EXTERNAL_STORAGE
存储 WRITE_EXTERNAL_STORAGE
参考文章:
https://blog.csdn.net/ygz111111/article/details/80281966
兼容android 6.0以上获取设备编号等权限相关推荐
- android动态mac地址,Android 版本兼容 — Android 6.0 和 7.0后获取Mac地址
Android 6.0 和 7.0后获取Mac地址 随着Android的版本迭代,获取设备的Mac地址也发生了改变.这里找到了最新的适配方案(适配当前的最新版本Android 9.0),并且记录了整个 ...
- Materia Design(一)--将 Materia Design 兼容到5.0之前的设备
2019独角兽企业重金招聘Python工程师标准>>> 本篇文章翻译自Chris Banes(就职于Google,是Android-PullToRefresh,PhotoView,p ...
- Android分享文件到微信和QQ功能的实现(兼容android 7.0以上的共享文件)
Android分享文件到微信和QQ功能的实现(兼容android 7.0以上的共享文件) 在android开发过程中,遇到需要分享数据到微信的开发需求时,基本都是集成友盟等第三方开发工具,简单集成SD ...
- android 动态获取权限有哪些,Android 6.0+ 动态获取权限
Android 6.0+ 动态获取权限 这里有一个现成的库,可以直接拿来用.方便简单 1.向app下的gradle添加依赖: dependencies{ // android 6.0+ 动态获取权限 ...
- appcompat v21: 让 Android 5.0 前的设备支持 Material Design
1. 十大Material Design开源项目 2. appcompat v21: 让 Android 5.0 前的设备支持 Material Design 主题 AppCompat已经支持最新的调 ...
- Android 11.0 无源码apk授予QUERY_ALL_PACKAGES权限
目录 1.概述 2.Android 11.0 无源码apk授予QUERY_ALL_PACKAGES权限的核心类 3.Android 11.0 无源码apk授予QUERY_ALL_
- 【Android】AppCompat V21:将 Materia Design 兼容到5.0之前的设备
AppCompat V21:将 Materia Design 兼容到于5.0之前的设备 本篇文章翻译自Chris Banes(就职于Google,是Android-PullToRefresh,Phot ...
- AppCompat V21:将 Materia Design 兼容到5.0之前的设备
------------------------------------------------------------------------------ GitHub:lightSky 微博: ...
- 记APP实现多语言(国际化)过程,兼容Android 8.0以上
此文属于finddreams的原创博客,转载请注明出处:http://blog.csdn.net/finddreams/article/details/78470768 APP为什么要做多语言? ...
- Android 6.0以下获取Camera权限问题
当我们使用手机相机的时候,通常就会想到先获取手机相机权限,也就是运行时权限. 也就是类似下面方法 /*** 申请相机权限*/private void startRequestPermission(){ ...
最新文章
- Halcon基础知识:常规数据、对象数据、对象元组
- matplotlib 一张图多个图,如何在Matplotlib中绘制同一个图上的多个函数?
- mysql核心技术分析_深入理解MySQL核心技术
- JSK-4 简单斐波那契【基础+打表+记忆化递归】
- sql 触发器未触发_SQL触发器–综合指南
- [转]如何:定义和处理 SOAP 标头
- linux meta 18.0.1 系统安装nodejs
- 在linux下搭建tftp服务器,嵌入式linux常用服务配置之tftp服务器配置
- 打开计算机页面闪,电脑打开网页闪烁几大原因及解决
- KK模组与普通丝杠模组的区别
- SO逆向入门实战教程四:mfw
- 统计物理α和β方法体系介绍
- 根据接口获取得数据,布局两列多行的代码写法
- 税点怎么用计算机算出来,2017个税计算器具体要怎么算
- extjs 数字校园-云资源平台 2014.2.4-班级座位表
- 1.[QT | QCharts | 动态显示]折线图标题字体大小无法更改
- Krpano 热点箭头动画
- dwr的使用和ajax的标签使用 (未读)
- MySQL · 捉虫动态 · UK 包含 NULL 值备库延迟分析
- 小米游戏本(7代)开箱
热门文章
- 西密歇根大学计算机科学专业排名,西密歇根大学计算机工程硕士排名第86(2020年TFE Times排名)...
- 计算三角形的周长和面积
- 武汉大学计算机学院夏桂松,实验室硕士研究生王碧杉、何敬伟在ECCV上发表事件相机高质量图像重建论文...
- 做好的图片如何生成链接呢分享?
- Python爬虫之链家二手房数据爬取
- obj文件格式学习(自用)
- 年会抽奖程序,基于 Express + Three.js的 3D 球体抽奖程序
- Android7.0 拨号盘应用源码分析(一) 界面浅析
- 整合阿里云域名 + 腾讯云 CDN + 又拍云存储的使用流程
- python_误差分析