/**
* 获取设备信息(https://www.html5plus.org/doc/zh_cn/device.html#plus.device.getInfo)
* 包括国际移动设备身份码、国际移动用户识别码、设备的唯一标识等信息。
* Android平台调用此方法需要申请访问设备标识(部分设备提示为拨打电话)权限,详情参考https://ask.dcloud.net.cn/article/36075。
*/
export function getDeviceInfo(): Promise<{ uuid: string; imei: string; imsi: string }> {
return new Promise((resolve, reject) => {
const outTimer = setTimeout(() => {
reject("获取设备信息超时");
}, 1000);
plus.device.getInfo({
success: (e) => {
console.log('**************** 设备信息:' + JSON.stringify(e));
resolve(e)
},
fail: (e) => {
console.log('**************** 获取设备信息失败: ' + JSON.stringify(e));
reject(e)
},
complete: (e) => {
console.log('**************** 获取设备信息complete: ', e)
clearTimeout(outTimer);
}
});
})
}
- 发布:2022-11-16 10:25
- 更新:2023-02-17 11:56
- 阅读:1296
产品分类: HTML5+
HBuilderX版本号: 3.2.16
手机系统: Android
手机系统版本号: Android 12
手机厂商: 华为
手机机型: mate30
打包方式: 云端
示例代码:
操作步骤:
- 第一次进入APP时,在获取“读取通话状态和移动网络信息”权限的弹框中,选择禁止
- 不关闭APP,到手机系统中手动给APP该权限
- 再次调用
plus.device.getInfo
时,一直没有回调
- 第一次进入APP时,在获取“读取通话状态和移动网络信息”权限的弹框中,选择禁止
- 不关闭APP,到手机系统中手动给APP该权限
- 再次调用
plus.device.getInfo
时,一直没有回调
预期结果:
plus.device.getInfo
至少有一个回调执行
plus.device.getInfo
至少有一个回调执行
实际结果:
plus.device.getInfo
没有任何回调执行
plus.device.getInfo
没有任何回调执行
YooooooO_0 (作者)
我最后是自己获取ANDROID_ID
解决的,我这只用Android
,所以没有考虑IOS
/**
* 获取android
*/
export function getAndroidId() {
const Settings: any = plus.android.importClass('android.provider.Settings');
const main: any = plus.android.runtimeMainActivity();
return Settings.Secure.getString(main.getContentResolver(), Settings.Secure.ANDROID_ID);
}
codeweeei
请问这个ANDROID_ID后期会更改吗,我这边需求是需要获取设备的唯一标识符然后跟用户登录做强绑定
2023-02-17 10:49
YooooooO_0 (作者)
不会改,但是需要申请
READ_PHONE_STATE
权限2023-02-17 11:58