Delphi XE6でAndroidスマートフォンの電話番号などの端末情報を取得するには

Delphi XE6でAndroidスマートフォンの電話番号などの端末情報を取得するサンプルアプリケーションです。

FireMonkeyモバイルアプリケーションを作成します。

フォームにボタンコンポーネント(TButton)とメモコンポーネント(TMemo)を配置します。

JTelephonyManager01

ボタンコンポーネントのクリックイベントを記述します。

uses
  Androidapi.Helpers,
  Androidapi.JNI.JavaTypes,
  Androidapi.JNI.GraphicsContentViewText,
  Androidapi.JNIBridge,
  Androidapi.JNI.Telephony,
  FMX.Helpers.Android;


procedure TForm1.Button1Click(Sender: TObject);
var
  TelephonyServiceNative: JObject;
  TelephonyManager: JTelephonyManager;
  SimState: Integer;
begin
  TelephonyServiceNative := SharedActivityContext.getSystemService
    (TJContext.JavaClass.TELEPHONY_SERVICE);
  TelephonyManager := TJTelephonyManager.Wrap
    ((TelephonyServiceNative as ILocalObject).GetObjectID);

  Memo1.Lines.BeginUpdate;
  try
    Memo1.Lines.Add('電話番号');
    Memo1.Lines.Add(JStringToString(TelephonyManager.getLine1Number));
    Memo1.Lines.Add('デバイスID');
    Memo1.Lines.Add(JStringToString(TelephonyManager.getDeviceId));
    Memo1.Lines.Add('SIMの国コード');
    Memo1.Lines.Add(JStringToString(TelephonyManager.getSimCountryIso));
    Memo1.Lines.Add('MCC+MNC (mobile country code + mobile network code)');
    Memo1.Lines.Add(JStringToString(TelephonyManager.getSimOperator));
    Memo1.Lines.Add('サービスプロバイダの名前');
    Memo1.Lines.Add(JStringToString(TelephonyManager.getSimOperatorName));
    Memo1.Lines.Add('SIMのシリアル番号');
    Memo1.Lines.Add(JStringToString(TelephonyManager.getSimSerialNumber));
    Memo1.Lines.Add('ボイスメールナンバー');
    Memo1.Lines.Add(JStringToString(TelephonyManager.getVoiceMailNumber));
    Memo1.Lines.Add('SIMの状態');
    SimState := TelephonyManager.getSimState;
    if SimState = TJTelephonyManager.JavaClass.SIM_STATE_UNKNOWN then
      Memo1.Lines.Add('SIM_STATE_UNKNOWN');
    if SimState = TJTelephonyManager.JavaClass.SIM_STATE_ABSENT then
      Memo1.Lines.Add('SIM_STATE_ABSENT');
    if SimState = TJTelephonyManager.JavaClass.SIM_STATE_PIN_REQUIRED then
      Memo1.Lines.Add('SIM_STATE_PIN_REQUIRED');
    if SimState = TJTelephonyManager.JavaClass.SIM_STATE_NETWORK_LOCKED then
      Memo1.Lines.Add('SIM_STATE_NETWORK_LOCKED');
    if SimState = TJTelephonyManager.JavaClass.SIM_STATE_READY then
      Memo1.Lines.Add('SIM_STATE_READY');
  finally
    Memo1.Lines.EndUpdate;
  end;
end;

アプリケーションを実行し、ボタンをクリックします。

メモコンポーネントに端末情報が表示されます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください