我尝试在 android 设备上获取 IMEI,我可以在 android 4.2 上成功地做到这一点
但是 我编写的代码不适用于 android 5 及更高版本
如何在 firemonkey 中获取 android 5 上的 IMEI?
最佳答案
这是一个使用 Android JNI 为您获取 Android 设备 IMEI 的代码 fragment :
uses
Androidapi.JNI.Telephony, Androidapi.JNI.Provider ,
Androidapi.JNIBridge, Androidapi.JNI.GraphicsContentViewText ,
Androidapi.JNI.JavaTypes,FMX.Helpers.Android;
事件:
procedure TForm1.btnCapturarIMEIClick(Sender: TObject);
var
obj: JObject;
tm: JTelephonyManager;
IMEI: String;
begin
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
IMEI := JStringToString(TJSettings_Secure.JavaClass.getString( SharedActivity.getContentResolver, TJSettings_Secure.JavaClass.ANDROID_ID));
ShowMessage('IMEI :' + #13 + IMEI);
end;
关于android - 如何在 firemonkey 中获取 Android 5 上的 IMEI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30885490/