首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

android 9无法在系统应用上获取imei数据

Android 9之后的版本限制了对IMEI(International Mobile Equipment Identity)数据的访问权限,特别是对于系统应用而言。IMEI是一个唯一标识符,用于识别移动设备,包括手机和平板电脑。这个限制是为了保护用户的隐私和数据安全。

在Android 9中,开发者只能通过以下方式获取IMEI数据:

  1. 使用TelephonyManager的getImei()方法:这个方法在Android 9中已被弃用,并且只能在应用程序的目录下使用。
  2. 使用TelephonyManager的getDeviceId()方法:这个方法在Android 10中已被弃用,并且只能在应用程序的目录下使用。
  3. 使用TelephonyManager的getMeid()方法:这个方法在Android 10中已被弃用,并且只能在应用程序的目录下使用。

需要注意的是,上述方法只能在非系统应用中使用,并且需要获取READ_PHONE_STATE权限。

对于系统应用而言,无法直接获取IMEI数据。这是为了防止恶意应用程序获取用户的个人信息。如果系统应用需要使用IMEI数据,可以考虑以下替代方案:

  1. 使用Android ID:Android ID是一个在设备首次启动时生成的64位数字字符串,可以作为设备的唯一标识符。可以使用Settings.Secure类的getString()方法获取Android ID。
  2. 使用设备的序列号:可以使用Build类的SERIAL字段获取设备的序列号。需要注意的是,某些设备可能没有序列号或者序列号不可靠。
  3. 使用广告标识符(Advertising ID):广告标识符是一个由Google Play服务提供的匿名标识符,用于广告定向和统计。可以使用AdvertisingIdClient类的getAdvertisingIdInfo()方法获取广告标识符。

总结起来,Android 9限制了系统应用对IMEI数据的访问权限,以保护用户的隐私和数据安全。开发者可以使用替代方案来获取设备的唯一标识符,如Android ID、设备序列号或广告标识符。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

2022最新手机设备标识码(IMEI、MEID、UDID、UUID、ANDROID_ID、GAID、IDFA等)教程

手机才获取的到,是由15位数字组成的"电子串号",比如像这样 359881030314356,它与每台移动电话机一一对,而且该码是全世界唯一的。...且某些设备上getDeviceId()会返回垃圾数据 Android Q(10)版本之后禁止使用 2 DeviceId 又叫设备ID。...可以用系统提供的TelephonyManager服务来获取,具有唯一性。其中又包括IMEI 和 MEID/ESN。...Android 2.3可以通过android.os.Build.SERIAL获取,非手机设备可以通过该接口获取少数的一些设备上,会返回垃圾数据。...可能发生变化,如系统重置、设置里还原广告标识符。用户可以设置里打开“限制广告跟踪”。

4.4K20
  • 2022最新手机设备标识码(IMEI、MEID、UDID、UUID、ANDROID_ID、GAID、IDFA等)教程

    Android手机才获取的到,是由15位数字组成的"电子串号",比如像这样 359881030314356,它与每台移动电话机一一对,而且该码是全世界唯一的。...且某些设备上getDeviceId()会返回垃圾数据 Android Q(10)版本之后禁止使用 2 DeviceId 又叫设备ID。...可以用系统提供的TelephonyManager服务来获取,具有唯一性。其中又包括IMEI 和 MEID/ESN。...Android 2.3可以通过android.os.Build.SERIAL获取,非手机设备可以通过该接口获取少数的一些设备上,会返回垃圾数据。...可能发生变化,如系统重置、设置里还原广告标识符。用户可以设置里打开“限制广告跟踪”。

    3.7K20

    Android获取手机IMEI,IMSI, MAC(Android 6.0)

    最近项目中用到获取手机IMEI,IMSI以及MAC,在此记录一下,方便你我他。。。 那么什么时候会用到这些东西呢?...IMEI IMEI(International Mobile Equipment Identity)是国际移动设备身份码的缩写,国际移动装备辨识码,是由15位数字组成的”电子串号”,它与每台移动电话机一一对...其总长度不超过15位,同样使用0~9的数字。...OSI模型中,第三层网络层负责 IP地址,第二层数据链路层则负责 MAC地址。...因此一个主机会有一个MAC地址,而每个网络位置会有一个专属于它的IP地址 PS:通俗来讲就是标识你当前使用我这个软件(功能)时的地址,方便在你干坏事的时候警察叔叔抓你~ 最主要的是:平板设备上,无法通过

    3.2K40

    画像标签分类及体系

    Android 10以后版本需要授权并有严格限制,后续有获取不到IMEI的风险;IOS 5版本以后已被禁止获取 ANDROID_ID Android设备里不依赖硬件的一种半永久标识符 是 Android...依托Google服务框架,国内使用较少 OAID 随着获取IMEIAndroid设备唯一标识被限制,移动安全联盟提出的一种Android设备的广告标识符 是 Android 国内还在推广应用中,仅支持国内...比如某用户A应用上的UserId是100,B应用上的应用是200 IMEI可以精准标识一个用户,但是出于数据安全考虑业界已不再支持获取IMEIANDROID_ID即使同一设备下,不同应用获取到的也不相同...,所以也无法广泛使用;IDFA和GAID是应用在IOS和Android上的广告标识符,但是由于GAID依托于Google服务框架,国内的使用较少。...如性别、教育程度、年龄段、婚育情况、用户兴趣等标签,代表的是用户基本属性,与用户用上的使用行为无关。基础属性直接反馈用户本身的信息,画像平台中使用频率较高,属于画像平台最重要的一类标签数据

    71010

    最全详解Android设备UDID还是唯一ID?

    根据设备、厂家或者 App 调用需求的不同,读取 Device ID 时可能会返回 IMEI 或其他硬件编码,但也有可能因为设备中没有相关硬件而无法获取 Device ID 或返回无效值;与之形成对应的...如果说前面三个 ID 可以用来识别设备,那么这两个 ID Android 系统中的作用主要是识别 App 进程、元素或数据。...23)到 Android 9(API 28)中,系统限制了第三方 API 获取MAC 地址;再加上早些时候,大部分「非玩机用户」对此类功能并没有太多概念,第三方 App 为了能以更加精准持久的方式来跟踪用户...我们可以 这个网站 查询到部分 App 所需要的权限、资源以及它可能会发送的隐私信息。例如微信,在网站中收录的 6.7.3 版本中,微信获取了如下权限,但并没有检测到发送以下隐私数据。...具体到用户层面, Android 10 之后应用即便能够获取到「电话」权限,系统返回给应用的 IMEI 信息值也为空(你可以通过 My IMEI 这款应用进行测试)。

    3.1K20

    2022Android设备唯一标识(AndroidID,OAID等 )

    根据设备、厂家或者 App 调用需求的不同,读取 Device ID 时可能会返回 IMEI 或其他硬件编码,但也有可能因为设备中没有相关硬件而无法获取 Device ID 或返回无效值;与之形成对应的...如果说前面三个 ID 可以用来识别设备,那么这两个 ID Android 系统中的作用主要是识别 App 进程、元素或数据。...23)到 Android 9(API 28)中,系统限制了第三方 API 获取MAC 地址;再加上早些时候,大部分「非玩机用户」对此类功能并没有太多概念,第三方 App 为了能以更加精准持久的方式来跟踪用户...具体到用户层面, Android 10 之后应用即便能够获取到「电话」权限,系统返回给应用的 IMEI 信息值也为空(你可以通过 My IMEI 这款应用进行测试)。...Android 开发者文档中对 Android 10 限制设备标识符读取的说明 OAID 的本质其实是一种国行系统内使用的、应对 Android 10 限制读取 IMEI 的、「拯救」国内移动广告的广告跟踪标识符

    5K21

    Android 设备唯一标识(适配Android版本)

    ① 大数据统计,比如采集这个APP的安装量,那么一个唯一标识就代表一个Android设备 ② 放置多设备重复登录,比如QQ、微信,你A手机登录了,如果又到B手机上登录,这时候A手机就会下线。...下面先配置这个项目,在上面我说过IMEIAndroid9.0时就被弃用了,说是弃用实际上是禁止第三方应用获取IMEI,这么一说,那它在Android9.0以下就是可以用的,那么Android的1.0...可以看到Android5.0上是可以正常获取IMEI的。 刚才我是通过获取IMEI号,下面来试试获取序列号、设备序列号以及WIFI 模块的MAC地址。...Android 10.0 在上面我就说过Android9.0及以后版本中第三方应用是无法获取IMEI的,那么现在你依然不用改代码,直接运行在Android10.0的虚拟机上。 ?...你会发现系统默认的弹窗都变得好看了一些。 然后你点击第一个按钮获取IMEI,直接闪退到桌面了。 ? 报错的意思就是当前应用不满足访问设备标识符的要求。

    4.3K41

    2022Android设备唯一标识(AndroidID,OAID等 )

    根据设备、厂家或者 App 调用需求的不同,读取 Device ID 时可能会返回 IMEI 或其他硬件编码,但也有可能因为设备中没有相关硬件而无法获取 Device ID 或返回无效值;与之形成对应的...如果说前面三个 ID 可以用来识别设备,那么这两个 ID Android 系统中的作用主要是识别 App 进程、元素或数据。...23)到 Android 9(API 28)中,系统限制了第三方 API 获取MAC 地址;再加上早些时候,大部分「非玩机用户」对此类功能并没有太多概念,第三方 App 为了能以更加精准持久的方式来跟踪用户...具体到用户层面, Android 10 之后应用即便能够获取到「电话」权限,系统返回给应用的 IMEI 信息值也为空(你可以通过 My IMEI 这款应用进行测试)。...Android 开发者文档中对 Android 10 限制设备标识符读取的说明 OAID 的本质其实是一种国行系统内使用的、应对 Android 10 限制读取 IMEI 的、「拯救」国内移动广告的广告跟踪标识符

    1.1K20

    开发是如何追踪定位到你的?

    ):国际移动设备身份码,iOS5之后该方法就被废弃掉了,因此iOS 5以后不能获取手机IMEI,但是也是可以通过私有API获取手机的IMEI号的,但是通过苹果私有API获取IMEI号,上架苹果商店会被拒掉的...同样由于隐私问题, iOS 7 之后无法通过 Mac 地址来标识唯一设备,因为 iOS 7 之后获取到的 Mac 地址为一固定值。...用户删除了你开发的程序以后,基本上你就不可能获取之前的数据了。...Android系统中,判断一个 App 的唯一标识是Package name,与iOS 的 Bundle ID是对应的。...用户可以设置里打开“限制广告跟踪”,适用于iOS6.0+; 7)Device ID:是推送系统中设备的唯一标识; 8)Bundle ID:每一个iOS应用的唯一标识; 9)Device token:用于区分识别每个

    2.1K31

    记一次微信数据库解密过程

    一、解密实践流程 1.对手机进行root授权 2.获取手机IMEI(MEID)码 3.获取微信的uin号 4.将IMEI(MEID)+uin进行MD5,取其前7位(小写) 5....(笔者使用的RE文件管理器这个文件搜索工具),不然是没办法找到微信的配置权限文件和数据库文件的,这一步如果不成功,后续则无法进行,授权截图如下: ?...2)在其他网络文章上大部分说的是解密过程中使用的是IMEI号,我实践测试的过程中是使用的MEID解密的,笔者猜测可能和微信的版本有关系。...获取方式有多个 ①简单粗暴的方法:有些可拆卸的电池,挖开外壳,里面可以看到相应的IMEI(MEID)号 ② 拨号键盘上输入“*#06#”: ?...从上面的源码可以看出,微信的加密数据库的解密密码是由“设备的IMEI(MEID)+用户的uin,进行MD5,然后取其前7位小写字母”构成的。

    1.5K61

    如何使用IMEI号码追踪丢失的安卓手机

    由于警察和服务提供者的数据库中这些ID号分为白名单和黑名单,因此所有者可以报告其IMEI号码并将其盗窃后列入黑名单。...不幸的是,如果您的电话被盗远离您10米范围外,请使用IMEI号码和防盗追踪器获悉它的位置,然后将其变成小偷绳之以法。 获取您的安卓(Android)手机的IMEI号码 知道这个数字很容易。...查找IMEI号码的另一种简便方法是“设置”中导航,然后点击“关于手机”以检查您的安卓(Android)手机的IMEI代码。 大多数情况下,IMEI号码位于手机的背面或可移动电池的下方。...这个免费的IMEI追踪器应用程序很棒,但是唯一的问题是它包含您必须观看的广告。不幸的是,您无法跳过广告,如果尚未加载视频,则将无法继续进行下一步。...输入代码“//pickpoi” 获取手机系统信息 你虽然天天用手机但是不见得你了解手机系统信息、输入代码“//getfpkey” 完全退出微信 感觉最不实用的功能,因为现在基本上没有人回选择微信退出登录

    11.2K30

    移动设备(手机)的唯一ID详解

    uuid: 设备的唯一标识,调用此属性获取设备的唯一标识号。 平台支持:Android - 2.2+ (支持): 与设备的imei号一致。...注意:如果无法获取设备imei则使用设备wifi的mac地址,如果无法获取设备mac地址则随机生成设备标识号,确保不同App同一台设备上获取的值一致。...1、IOS体系下:无法获取 IOS5.0以后,苹果官方就屏蔽了获取IMEI号的接口,因此后续版本的苹果设备都无法获取IMEI号。...但是Google的这个IDFA是需要基于Google Play等基础APP的,国内环境下,Google的这些基础APP要么无法访问使用,要么被手机厂商直接去掉了,因此Android手机上的IDFA国内没有起到唯一...目前,国内,Android设备主要还是以 IMEI 为主,IOS设备主要以 IDFA 为主。

    5K20

    APP因合规问题无法上架

    由于这些模块都集成google的gms服务会提前获取android id导致无法国内正常上架。打包时请在manifest.json配置中排除这些功能模块。 APP都符合以上条件要求。...隐私链接不能存在获取用户信息、定位信息等js代码。如有请去除! 可以通过小米手机 系统是MIUI12设备。安装你的应用。然后查看应用详情-->应用行为记录是否点击“同意”前有获取权限信息等情况。...# 8、应用没有勾选三方广告模块但是上架华为市场检测反馈集成了广告被拒 请使用HX3.6.1+重新打包 # 9、华为市场检测app在用户同意隐私政策前申请获取用户个人信息导致无法上架市场架 我们已经收到很多开发者反馈...启动会获取android id导致无法上架。 检查uni-app项目manifest.json将上述模块去除重新打包上架 没有集成这些模块可以向检测平台获取调用堆栈。...# 18、应用启动会主动申请手机存储权限、访问设备信息权限影响应用上架 请阅读文档Android平台应用启动时读写手机存储、访问设备信息(如IMEI)等权限策略 。

    3.2K20

    移动安全新“驾照”

    但是,Android 10新系统IMEI等传统设备标识码的使用带来了挑战。...根据Google的官方发布信息,Android 10系统新增了防止设备追踪的特性,即Android 10不允许一般应用访问IMEI码、序列号等不可重置的设备识别号。...如此一来,传统设备标识码(如IMEI)将无法继续Android 10系统的设备上使用。...(目前补充设备标识统一调用SDK处于开放试用阶段,可注册后下载使用) 三、OAID测试总结 近期小编所在项目的适配Android 10系统的版本中,接入了统一的OAID SDK,下面将简单介绍OAID...OAID的获取时机 可通过log或者抓请求的方式验证,实际测试中发现,由于不同的设备,数据获取可能在异步线程,OAID数据获取时机就可能会有一定的延迟。

    3.6K10

    叮~11月安全专项评测报告火热出炉

    二、数据分析 隐私检测项中发现,违规收集个人信息的应用占比最高,为76.3%,典型场景为隐私政策中未清晰明示第三方SDK收集和处理数据的目的、方式和范围,常见的包括同盾、快手等SDK获取GPS定位信息...、IMEI、MAC信息等。...解决方案:隐私政策所涉及事项发生变化时,开发者及时上传、同步更新隐私政策,并保证版本一致。...3.某购物比价类APP违规收集个人信息 问题应用:山×会员商店 版本号:5.0.65 具体问题:测试人员遍历APP功能时,发现APP存在调用“同盾”第三方SDK获取系统安装的应用程序、GPS定位信息、...IMEI、IMSI等信息的行为,而在隐私政策中未清晰明示获取这些信息的目的、方式和范围。

    40630

    Android获得设备状态信息、Mac地址、IP地址的方法

    前言 APP开发时,经常会遇到要获取手机状态信息的场景,像升级时获取版本号,像发生异常时要收集手机信息等等。有些软件还要根据Mac地址来判定当前用户以前是否登录过。...SUPPORTED_64_BIT_ABIS : [Ljava.lang.String;@e42c588 D/CrashHandler: SUPPORTED_ABIS : [Ljava.lang.String;@9cdbb21...Ip地址 Context.getSystemService()这个方法是非常实用的方法,只须在参数里输入一个String 字符串常量就可得到对应的服务管理方法,可以用来获取绝大部分的系统信息,各个常量对应的含义如下...代码如下: public static String getMacAddress(){ /*获取mac地址有一点需要注意的就是android 6.0版本后,以下注释方法不再适用,不管任何手机都会返回...、IMEI码 /**获取手机的IMEI号码*/ public static String getPhoneIMEI() { TelephonyManager mTm = (TelephonyManager

    3.9K30
    领券