uni-app 小米9获取imei为空
uni-app 小米9获取imei为空
详细问题描述
(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)
[内容]
重现步骤
小米9在开启权限的情况下获取uuid、imei等设备信息失败
[步骤]
离线打包安装成功后打开应用获取设备信息失败
[结果]
获取imei为空、uuid为一串字母数字组合的字符串
[期望]
获取imei、uuid成功
[如果语言难以表述清晰,拍一个视频或截图,有图有真相]
IDE运行环境说明
[HBuilder 或 HBuilderX。如果你用其他工具开发uni-app,也需要在此说明]
HBuilder X
[IDE版本号]
2.4.2.20191115
[windows版本号]
windows 10
[mac版本号]
uni-app运行环境说明
[运行端是h5或app或某个小程序?]
[运行端版本号]
[项目是cli创建的还是HBuilderX创建的?如果是cli创建的,请更新到最新版cli再试]
[编译模式是老模板模式还是新的自定义组件模式?]
App运行环境说明
[Android版本号]
Android 10
[iOS版本号]
[手机型号]
小米9
[模拟器型号]
附件
[IDE问题请提供HBuilderX运行日志。菜单帮助-查看运行日志,点右键打开文件所在目录,将log文件压缩成zip包上传]
[App问题请提供可重现问题的代码片段,你补充的细一点,问题就解决的快一点]
[App安装包或H5地址]
[可重现代码片段]
if(mui.os.ios){
plus.navigator.setFullscreen(false);
userInfo.setItem('mbUUID', plus.device.uuid);
}else{
plus.device.getInfo({
success:function(e){
userInfo.setItem('mbUUID', e.uuid);
alert("成功设备uuid:"+JSON.stringify(e));
console.log("保存的设备uuid:"+userInfo.getItem("mbUUID"));
},
fail:function(e){
userInfo.setItem('mbUUID', e.uuid);
alert("失败设备uuid:"+JSON.stringify(e));
console.log("保存的设备uuid:"+userInfo.getItem("mbUUID"));
}
});
}
联系方式
[QQ]
更多关于uni-app 小米9获取imei为空的实战教程也可以访问 https://www.itying.com/category-93-b0.html
Android10自身就没有imei api。改用oaid,仔细看plus.devide的文档
更多关于uni-app 小米9获取imei为空的实战教程也可以访问 https://www.itying.com/category-93-b0.html
根据你描述的情况,在小米9上获取IMEI为空的问题,这是Android系统的正常行为。从Android 10开始,Google加强了对设备标识符的限制:
-
IMEI获取限制:Android 10及以上版本,普通应用已无法获取IMEI等持久性设备标识符,这是Google的隐私政策要求。
-
UUID问题:plus.device.uuid返回的是应用实例ID,每次安装都会变化,不是真正的设备UUID。
解决方案建议:
-
对于设备唯一标识,可以使用plus.device.getOAID()获取OAID(适用于国内厂商设备),需要集成移动安全联盟的SDK。
-
检查是否添加了必要权限:
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
- 对于Android 10+设备,可以考虑使用ANDROID_ID作为替代标识符:
let ANDROID_ID = plus.android.invoke('android.provider.Settings$Secure', 'getString',
plus.android.currentContext().getContentResolver(),
'android_id');