YooooooO_0
YooooooO_0
  • 发布:2022-11-16 10:25
  • 更新:2023-02-17 11:56
  • 阅读:1045

【报Bug】plus.device.getInfo 回调不执行

分类:HTML5+

产品分类: HTML5+

HBuilderX版本号: 3.2.16

手机系统: Android

手机系统版本号: Android 12

手机厂商: 华为

手机机型: mate30

打包方式: 云端

示例代码:
/**  
 * 获取设备信息(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);  
      }  
    });  
  })  
}

操作步骤:
  1. 第一次进入APP时,在获取“读取通话状态和移动网络信息”权限的弹框中,选择禁止
  2. 不关闭APP,到手机系统中手动给APP该权限
  3. 再次调用 plus.device.getInfo 时,一直没有回调

预期结果:

plus.device.getInfo至少有一个回调执行

实际结果:

plus.device.getInfo没有任何回调执行

bug描述:

进入APP没有立即获取权限,就调用plus.device.getInfosuccessfailcomplete 三个回调均未执行,必须重启APP后才能获取回调

2022-11-16 10:25 负责人:无 分享
已邀请:
YooooooO_0

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

DCloud_Android_ST

DCloud_Android_ST

请使用HX3.6.4+版本重新验证下结果

  • 2***@qq.com

    HBuilderX现在也才3.6.14啊,现在这个bug还没修复吗,难受

    2022-12-21 01:08

  • NJ小源

    你好,3.7.9版本打包出来的包,还是会提示获取手机号、IMEI、IMSI授权的弹框,我这边没有代码调用它,授权弹框还是会出现

    2023-03-30 17:39

  • NJ小源

    你好,3.7.9版本打包出来的包,还是会提示获取手机号、IMEI、IMSI授权的弹框,我这边没有代码调用它,授权弹框还是会出现

    2023-03-30 17:39

z***@126.com

z***@126.com

我是HX3.6.4,遇到一模一样的问题,而且我发现在调用plus.device.getInfo()函数之后的所有代码都没有执行。到现在还没解决吗?

  • codeweeei

    哥们,你这后面有解决方法吗

    2023-02-17 10:25

codeweeei

codeweeei

HX3.6.18,也遇到同样的问题

codeweeei

codeweeei

我这边Android10 应用只要开启应用之前未开启权限,进入应用后调plus.device.getInfo()弹出框,点击允许就无反应了,取不到任何回调,重启app重新调这个api就能获取uuid了

要回复问题请先登录注册