C++Builder XE6でAndroidスマートフォンの電話番号などの端末情報を取得するサンプルアプリケーションです。
FireMonkeyモバイルアプリケーションを作成します。
フォームにボタンコンポーネント(TButton)とメモコンポーネント(TMemo)を配置します。
ボタンコンポーネントのクリックイベントを記述します。
#include <Androidapi.Helpers.hpp>
#include <Androidapi.JNI.JavaTypes.hpp>
#include <Androidapi.JNI.GraphicsContentViewText.hpp>
#include <Androidapi.JNIBridge.hpp>
#include <Androidapi.JNI.Telephony.hpp>
#include <FMX.Helpers.Android.hpp>
void __fastcall TForm1::Button1Click(TObject *Sender) {
_di_JObject TelephonyServiceNative = SharedActivityContext()->getSystemService(TJContext::JavaClass->TELEPHONY_SERVICE);
_di_JTelephonyManager TelephonyManager = TJTelephonyManager::Wrap(((_di_ILocalObject)TelephonyServiceNative)>GetObjectID());
Memo1->Lines->BeginUpdate();
try {
Memo1->Lines->Add(L"電話番号");
Memo1->Lines->Add(JStringToString(TelephonyManager->getLine1Number()));
Memo1->Lines->Add(L"デバイスID");
Memo1->Lines->Add(JStringToString(TelephonyManager->getDeviceId()));
Memo1->Lines->Add(L"SIMの国コード");
Memo1->Lines->Add(JStringToString(TelephonyManager->getSimCountryIso()));
Memo1->Lines->Add(L"MCC+MNC (mobile country code + mobile network code)");
Memo1->Lines->Add(JStringToString(TelephonyManager->getSimOperator()));
Memo1->Lines->Add(L"サービスプロバイダの名前");
Memo1->Lines->Add(JStringToString(TelephonyManager->getSimOperatorName()));
Memo1->Lines->Add(L"SIMのシリアル番号");
Memo1->Lines->Add(JStringToString(TelephonyManager->getSimSerialNumber()));
Memo1->Lines->Add(L"ボイスメールナンバー");
Memo1->Lines->Add(JStringToString(TelephonyManager->getVoiceMailNumber()));
Memo1->Lines->Add(L"SIMの状態");
const int SimState = TelephonyManager->getSimState();
if (SimState == TJTelephonyManager::JavaClass->SIM_STATE_UNKNOWN)
Memo1->Lines->Add(L"SIM_STATE_UNKNOWN");
if (SimState == TJTelephonyManager::JavaClass->SIM_STATE_ABSENT)
Memo1->Lines->Add(L"SIM_STATE_ABSENT");
if (SimState == TJTelephonyManager::JavaClass->SIM_STATE_PIN_REQUIRED)
Memo1->Lines->Add(L"SIM_STATE_PIN_REQUIRED");
if (SimState == TJTelephonyManager::JavaClass->SIM_STATE_NETWORK_LOCKED)
Memo1->Lines->Add(L"SIM_STATE_NETWORK_LOCKED");
if (SimState == TJTelephonyManager::JavaClass->SIM_STATE_READY)
Memo1->Lines->Add(L"SIM_STATE_READY");
}
__finally {
Memo1->Lines->EndUpdate();
}
}
アプリケーションを実行し、ボタンをクリックします。
メモコンポーネントに端末情報が表示されます。