1.概述
在12.0的产品开发中,对于读取设备的imei sn号功能也是常有的,而在10.0以后对于读取imei也是受权限要求越来越多了一般的app是读取不到这个权限了,根据产品需求需要读取这个权限,所以需要在系统中对这个app授权让它读取包名,从而实现功能
2.根据包名授予读取IMEI权限的核心类
frameworksbasetelephonyjavaandroidtelephonyTelephonyManager.javaframeworksopttelephonysrcjavacomandroidinternaltelephonyPhoneSubInfoController.javaframeworksbasetelephonycommoncomandroidinternaltelephonyTelephonyPermissions.java
3.根据包名授予读取IMEI权限的核心功能实现和分析
首选在app中看如何获取imei的
String imei =((TelephonyManager) context.getSystemService(TELEPHONY_SERVICE)).getDeviceId();
从上面代码可以看出是TelephonyManager的getDeviceId();来获取imei号的
接下来看下TelephonyManager的getDeviceId()的相关源码
3.1 TelephonyManager的关于imei的相关源码
@Deprecated@SuppressAutoDoc No support for device profile owner or carrier privileges (b72967236).@RequiresPermission