如何使用Ionic 3获取设备的IMEI号?

时间:2018-09-22 05:17:03

标签: angular cordova ionic-framework ionic3 nodes

我需要唯一地标识每个设备。我认为获取IMEi编号的最佳方法。但是我该怎么做。

我已经阅读了文档https://ionicframework.com/docs/native/uid/,但不清楚。

如果还有其他步骤可以建议我。

2 个答案:

答案 0 :(得分:1)

您可以关注文档: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

答案 1 :(得分:1)

我同样需要以独特的方式识别每个设备,我发现的解决方案如下。

获取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>

请记住,当使用这些本机依赖项时,如果仅从仿真器或物理设备运行应用程序,我们将只能在浏览器中看到结果。

就我而言,它奏效了,希望它能为某人服务