У меня была такая же потребность идентифицировать каждое устройство уникальным способом, и я нашел следующее решение:
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>
Помните, что при использовании этих собственных зависимостей мы могли видеть результаты, только если запустимприложение отОм эмулятор или с физического устройства, в браузере он не будет работать.
в моем случае это сработало, я надеюсь, что кому-то это послужит