
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
And here is the code snippet:
uses
Androidapi.JNI.Telephony, Androidapi.JNI.Provider ,
Androidapi.JNIBridge, Androidapi.JNI.GraphicsContentViewText ,
Androidapi.JNI.JavaTypes,FMX.Helpers.Android;
var
obj: JObject;
tm: JTelephonyManager;
identifier: 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
identifier := JStringToString(tm.getDeviceId);
end;
if identifier = '' then
identifier := JStringToString(TJSettings_Secure.JavaClass.getString(SharedActivity.getContentResolver,
TJSettings_Secure.JavaClass.ANDROID_ID));
end;
There are also two other blog posts with slightly different code for retrieving the IMEI on Android with Delphi XE5 Firemonkey here and here.
Head over to the Embercadero forum to read the full thread about getting the IMEI on Android.
How can I do the same on IOS?
Apple doesn’t allow getting the IMEI anymore.
https://stackoverflow.com/questions/19927160/finding-imei-number-using-objective-c
Thank you, this works perfectly.
Thank you, this works perfectly. I’ve use this for find getNetworkOperatorName and getSimSerialNumber, but I can find also in iOS?
Apple has disallowed collecting the IMEI. Better off just generating a GUID and saving it for re-use in the app on IOS. Yes, you will lose it if they uninstall though.
I am creating an App for Public Administration who has the need to find legally on customers, there is some other information that I can find? or then give me an example similar to this article on something like that?