RAD_XE11.3获取android11手机的IMEI,原来的APP应用是在ANDORID5上的,升级到ANDROID11后原来的代码不能读取到IMEI了。
{
//读取IMEI引用的单元
FMX.Platform.Android,
Androidapi.JNI.Telephony,
Androidapi.JNI.Provider ,
Androidapi.JNIBridge,
Androidapi.JNI.GraphicsContentViewText,
Androidapi.JNI.JavaTypes,
Androidapi.Helpers;
}
procedure TForm1.FormCreate(Sender: TObject);
var
obj: JObject;
tm: JTelephonyManager;
IMEI: String;
begin
//读取PDA的IMEI唯一码
obj := SharedActivityContext.getSystemService(TJContext.JavaClass.TELEPHONY_SERVICE);
if obj <> nil then
begin
tm := TJTelephonyManager.Wrap( (obj as ILocalObject).GetObjectID );
if tm <> nil then
IMEI := JStringToString(tm.getDeviceId);
end;
if IMEI = '' then
begin
IMEI := JStringToString(TJSettings_Secure.JavaClass.getString(SharedActivity.getContentResolver,TJSettings_Secure.JavaClass.ANDROID_ID));
end;
ShowMessage('IMEI :' + #13 + IMEI);
End;