【问题标题】:How to get IMEI number from Android device on first time install of Application using IONIC 3首次使用 IONIC 3 安装应用程序时如何从 Android 设备获取 IMEI 号码
【发布时间】:2019-01-11 14:47:18
【问题描述】:

我想使用 Ionic 3 获取 Android 设备的 IMEI 号码。 我正在使用下面的代码通过此链接获取它。https://ionicframework.com/docs/native/uid/

async getImei() {
 const { hasPermission } = await this.androidPermissions.checkPermission(
   this.androidPermissions.PERMISSION.READ_PHONE_STATE
 );

 if (!hasPermission) {
   const result = await this.androidPermissions.requestPermission(
     this.androidPermissions.PERMISSION.READ_PHONE_STATE
   );

   if (!result.hasPermission) {
     throw new Error('Permissions required');
   }

   // ok, a user gave us permission, we can get him identifiers after restart app
   return;
 }

  return this.uid.IMEI
}

我是这样在构造函数中调用上述方法的。

this.getImei();

然后我只想打印那个控制台。

console.log("IMEI Number" + this.uid.IMEI);

这里我面临一个问题。当我第一次在设备上安装应用程序时,它要求许可,但在控制台中没有得到任何价值。

当我关闭应用程序时,从后台清除,然后当我再次打开应用程序时,我获得了价值。

谁能帮助我如何在首次安装时获得价值。

【问题讨论】:

    标签: async-await ionic3 imei


    【解决方案1】:

    看起来您首先要检查权限。如果用户没有它(当你第一次启动它时总是这样),你进入 if。你在里面请求权限,但是在用户给你权限之后,你只是做return;,没有任何价值。所以它不会返回任何东西。

    第二次启动应用时,你已经拥有权限,它会跳过if,直接转到return this.uid.IMEI

    所以你应该把第一个return;返回给return this.uid.IMEI

    【讨论】:

    • 我也试过了。但它仍然是相同的@Andreas Gassmann
    • 是的,我也试过了。 platform.ready().then(() => {});.但不工作@Andreas Gassmann
    猜你喜欢
    • 1970-01-01
    • 2017-11-22
    • 1970-01-01
    • 2013-01-11
    • 2017-04-28
    • 1970-01-01
    • 2014-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多