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以上获取设备编号等权限相关推荐

  1. android动态mac地址,Android 版本兼容 — Android 6.0 和 7.0后获取Mac地址

    Android 6.0 和 7.0后获取Mac地址 随着Android的版本迭代,获取设备的Mac地址也发生了改变.这里找到了最新的适配方案(适配当前的最新版本Android 9.0),并且记录了整个 ...

  2. Materia Design(一)--将 Materia Design 兼容到5.0之前的设备

    2019独角兽企业重金招聘Python工程师标准>>> 本篇文章翻译自Chris Banes(就职于Google,是Android-PullToRefresh,PhotoView,p ...

  3. Android分享文件到微信和QQ功能的实现(兼容android 7.0以上的共享文件)

    Android分享文件到微信和QQ功能的实现(兼容android 7.0以上的共享文件) 在android开发过程中,遇到需要分享数据到微信的开发需求时,基本都是集成友盟等第三方开发工具,简单集成SD ...

  4. android 动态获取权限有哪些,Android 6.0+ 动态获取权限

    Android 6.0+ 动态获取权限 这里有一个现成的库,可以直接拿来用.方便简单 1.向app下的gradle添加依赖: dependencies{ // android 6.0+ 动态获取权限 ...

  5. appcompat v21: 让 Android 5.0 前的设备支持 Material Design

    1. 十大Material Design开源项目 2. appcompat v21: 让 Android 5.0 前的设备支持 Material Design 主题 AppCompat已经支持最新的调 ...

  6. Android 11.0 无源码apk授予QUERY_ALL_PACKAGES权限

    目录 1.概述 2.Android 11.0 无源码apk授予QUERY_ALL_PACKAGES权限的核心类 3.Android 11.0 无源码apk授予QUERY_ALL_

  7. 【Android】AppCompat V21:将 Materia Design 兼容到5.0之前的设备

    AppCompat V21:将 Materia Design 兼容到于5.0之前的设备 本篇文章翻译自Chris Banes(就职于Google,是Android-PullToRefresh,Phot ...

  8. AppCompat V21:将 Materia Design 兼容到5.0之前的设备

    ------------------------------------------------------------------------------ GitHub:lightSky 微博:   ...

  9. 记APP实现多语言(国际化)过程,兼容Android 8.0以上

    此文属于finddreams的原创博客,转载请注明出处:http://blog.csdn.net/finddreams/article/details/78470768   APP为什么要做多语言? ...

  10. Android 6.0以下获取Camera权限问题

    当我们使用手机相机的时候,通常就会想到先获取手机相机权限,也就是运行时权限. 也就是类似下面方法 /*** 申请相机权限*/private void startRequestPermission(){ ...

最新文章

  1. Halcon基础知识:常规数据、对象数据、对象元组
  2. matplotlib 一张图多个图,如何在Matplotlib中绘制同一个图上的多个函数?
  3. mysql核心技术分析_深入理解MySQL核心技术
  4. JSK-4 简单斐波那契【基础+打表+记忆化递归】
  5. sql 触发器未触发_SQL触发器–综合指南
  6. [转]如何:定义和处理 SOAP 标头
  7. linux meta 18.0.1 系统安装nodejs
  8. 在linux下搭建tftp服务器,嵌入式linux常用服务配置之tftp服务器配置
  9. 打开计算机页面闪,电脑打开网页闪烁几大原因及解决
  10. KK模组与普通丝杠模组的区别
  11. SO逆向入门实战教程四:mfw
  12. 统计物理α和β方法体系介绍
  13. 根据接口获取得数据,布局两列多行的代码写法
  14. 税点怎么用计算机算出来,2017个税计算器具体要怎么算
  15. extjs 数字校园-云资源平台 2014.2.4-班级座位表
  16. 1.[QT | QCharts | 动态显示]折线图标题字体大小无法更改
  17. Krpano 热点箭头动画
  18. dwr的使用和ajax的标签使用 (未读)
  19. MySQL · 捉虫动态 · UK 包含 NULL 值备库延迟分析
  20. 小米游戏本(7代)开箱

热门文章

  1. 西密歇根大学计算机科学专业排名,西密歇根大学计算机工程硕士排名第86(2020年TFE Times排名)...
  2. 计算三角形的周长和面积
  3. 武汉大学计算机学院夏桂松,实验室硕士研究生王碧杉、何敬伟在ECCV上发表事件相机高质量图像重建论文...
  4. 做好的图片如何生成链接呢分享?
  5. Python爬虫之链家二手房数据爬取
  6. obj文件格式学习(自用)
  7. 年会抽奖程序,基于 Express + Three.js的 3D 球体抽奖程序
  8. Android7.0 拨号盘应用源码分析(一) 界面浅析
  9. 整合阿里云域名 + 腾讯云 CDN + 又拍云存储的使用流程
  10. python_误差分析