Как получить номер IMEI устройства, использующего Ionic 3? - PullRequest
0 голосов
/ 22 сентября 2018

Мне нужно однозначно идентифицировать каждое устройство.Я думаю, что лучший способ получить номер IMEi.Но как я могу это сделать.

Я прочитал документацию https://ionicframework.com/docs/native/uid/, но не ясно.

Если есть какой-либо другой процесс, который может предложить мне.

Ответы [ 2 ]

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

У меня была такая же потребность идентифицировать каждое устройство уникальным способом, и я нашел следующее решение:

GET IMEI

оно должно быть установлено, плагин и две зависимости,в указанной версии и последняя версия несовместима с проектом, над которым я работаю (ionic 3)

ionic cordova plugin add cordova-plugin-uid
npm install --save @ionic-native/uid@^4.20.0
npm install --save @ionic-native/android-permissions@^4.20.0
cordova plugin add cordova-plugin-android-permissions         
cordova plugin add cordova-plugin-permission

Зависимые приложения должны быть импортированы в файл app.module.ts и добавлены поставщикиэтого же файла к объекту.

файл app.module.ts

import {Uid} from '@ionic-native/uid';
import {AndroidPermissions} from '@ionic-native/android-permissions';


providers: [
    StatusBar,
    Uid,
    AndroidPermissions,
    SplashScreen,
    {provide: ErrorHandler, useClass: IonicErrorHandler},
  ]

в файле, в который захвачено изображение, ранее импортированные зависимости должны быть импортированы, в данном случае home.ts.

мы строим функцию getIMEI () и объявляем ее в конструкторе.

файл home.ts

import {Uid} from '@ionic-native/uid';
import {AndroidPermissions} from '@ionic-native/android-permissions';

device_id: any;
builder(
    public uid: Uid,
    public androidPermissions: AndroidPermissions
    ) {
    this.getIMEI();
}

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 identifiers after
restart the application
        return 0;
    }
    this.device_id = this.uid.IMEI
    return this.uid.IMEI;
}

, чтобы показать изображение на экранев этом случае потребуется редактировать html только файл home.html

home.html

<ion-content padding>
 <p> {{device_id}} </p>
</ion-content>

Помните, что при использовании этих собственных зависимостей мы могли видеть результаты, только если запустимприложение отОм эмулятор или с физического устройства, в браузере он не будет работать.

в моем случае это сработало, я надеюсь, что кому-то это послужит

0 голосов
/ 07 октября 2018

Вы можете следовать документам: https://ionicframework.com/docs/native/unique-device-id/

Сначала добавьте плагин в свое приложение:

ionic cordova plugin add cordova-plugin-uniquedeviceid
npm install --save @ionic-native/unique-device-id

then import that to your app module.ts file.

import { Device } from '@ionic-native/device';

Добавьте устройство к своим провайдерам:

  providers: [
    StatusBar,
    Device,
    SplashScreen,
    {provide: ErrorHandler, useClass: IonicErrorHandler}
  ]

В файле, который вы хотите получить uuid:

import { Device } from '@ionic-native/device';

Добавьте это в ваш конструктор:

private device: Device

получите UUID: device_id = this.device.uuid

...