Obtener el IMEI del móvil

En Android, se puede recuperar fácilmente el número IMEI. 





unit
 Android.IMEI;



interface



{$IFDEF ANDROID}

uses

  Androidapi.JNI.Telephony, Androidapi.JNI.Provider, Androidapi.JNI.GraphicsContentViewText, Androidapi.JNIBridge, FMX.Helpers.Android, androidapi.JNI.JavaTypes, androidapi.JNI.Os;

{$ENDIF}



function ToString: string;



implementation



function ToString: string;

{$IFDEF ANDROID}

var

  obj: JObject;

  tm : JTelephonyManager;

{$ENDIF}

begin

  Result := '111111111111';

{$IFDEF ANDROID}

  obj := SharedActivityContext.getSystemService(TJContext.JavaClass.TELEPHONY_SERVICE);

  if obj <> nil then

  begin

    tm := TJTelephonyManager.Wrap( (obj as ILocalObject).GetObjectID );

    if tm <> nil then

    begin

      Result := JStringToString(tm.getDeviceId);

    end;

  end;

  if Result = '' then

  begin

    Result := JStringToString(TJSettings_Secure.JavaClass.getString(SharedActivity.getContentResolver, TJSettings_Secure.JavaClass.ANDROID_ID));

  end;

{$ENDIF}

end;



end.


Una  unit con la unidad y el código que se necesite en función de la plataforma de destino.



unit
 Mobile.Identifier;



interface



{$IFDEF ANDROID}

uses

  Android.IMEI;

{$ENDIF}

{$IFDEF IOS}

uses

  DX.Apple.Utils;

{$ENDIF}



function ToString: string;



implementation



function ToString: string;

begin

  Result := '000000000000'; // Sous Windows

{$IFDEF ANDROID}

  Result := Android.IMEI.ToString;

{$ENDIF}

{$IFDEF IOS}

  Result := DX.Apple.Utils.VendorIdentifier;

{$ENDIF}

end;



end.


Advertencia !!!En Android, es necesario el permiso leer el estado del teléfono si se produce un error.






Código desarrollado con Embarcadero Delphi XE5.








No hay comentarios:

Publicar un comentario

Simulación del movimiento de los electrones en un campo electrico

Espectacular simulación realizada con OpenGL del movimiento de los electrones cuando atraviesan un campo eléctrico. Como muestra la image...