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

mad*_*max -1 nodes cordova ionic-framework ionic3 angular

我需要唯一地识别每个设备。我认为获得IMEi num的最佳方法。但我怎么能做到这一点。

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

如果有任何其他过程可以建议我。

小智 5

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

获取IMEI

它必须安装在指定的版本中,一个插件和两个依赖项,并且最新版本与我正在处理的项目不兼容(离子 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
Run Code Online (Sandbox Code Playgroud)

必须将依赖应用程序导入 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},
  ]
Run Code Online (Sandbox Code Playgroud)

在捕获图像的文件中,必须导入之前安装的依赖项,在本例中为 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;
}
Run Code Online (Sandbox Code Playgroud)

要在屏幕上显示图像,在这种情况下只需要编辑 html home.html

home.html 文件

<ion-content padding>
 <p> {{device_id}} </p>
</ion-content>
Run Code Online (Sandbox Code Playgroud)

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

在我的情况下它有效,我希望它为某人服务