安卓获得设备 ID

安卓获得设备 ID

使用移动设备时,程序员非常需要能够识别每台设备。

为了执行此操作,我们有两种主要形式,一种是由移动设备本身的 IMEI,即设备制造商提供的 ID;或第二种方法是 Android 向已安装的应用程序提供的ID。

就个人而言,我使用第二个选项,因为对于第一个获得IMEI,我们必须获得READ_PHONE_STATE的权限许可,因为它是一个危险的权限。

从Delphi获取 Android 上的设备 ID

要从Delphi获取Android ID,我们只需要几个声明如下几点:

我们想澄清,这个Id可能会有所不同。什么时候会变化?例如,当您将移动设备还原到出厂设置或设备Root时,它可能会有所不同。

因此,如果用户安装应用程序,我们将获得一个 ID,但如果用户将设备重置为出厂,然后重新安装我们的应用程序,我们将获得与第一个 ID 的不同 ID。

为了能够在Android上获取 Id,我们需要两个单元:Androidapi.JNI.ProviderAndroidapi.helpers,功能如下:

Uses

Androidapi.JNI.Provider, Androidapi.helpers;

 

function GetDeviceId(): string;

begin

try

Result := JStringToString(TJSettings_SECURE.JavaClass.getString(TAndroidHelper.Activity.getContentResolver, TJSettings_SECURE.JavaClass.ANDROID_ID));

except

Result := ”;

end;

end;