Как получить номер IMEI с устройства Android при первой установке Приложения с использованием IONIC 3 - PullRequest
0 голосов
/ 11 января 2019

Я хочу получить номер IMEI устройства Android, используя Ionic 3. Я использую код ниже, чтобы получить это, перейдя по этой ссылке. 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);

Здесь я сталкиваюсь с одной проблемой. В первый раз, когда я устанавливаю приложение на устройство, оно запрашивает разрешение, но в консоли не получает никакого значения.

Когда я закрываю приложение, очищаюсь от backstack, а затем, когда я снова открываю приложение, я получаю значение.

Может кто-нибудь помочь мне, как получить значение при первой установке.

1 Ответ

0 голосов
/ 11 января 2019

Похоже, вы сначала проверяете разрешение. Если у пользователя его нет (что будет всегда, когда вы запускаете его в первый раз), вы переходите в if. Внутри вы запрашиваете разрешение, но после того, как пользователь дает вам разрешение, вы просто делаете return; без какого-либо значения. Так что ничего не вернется.

Во второй раз, когда вы запускаете приложение, у вас уже есть разрешение, и оно пропускает if и сразу переходит к return this.uid.IMEI

Итак, вы должны вернуть первое return; в return this.uid.IMEI

...