AndroidアプリでSIMカードにアクセスできるのかな
6 に答える
次のように IMEI を取得できます (しかし、それはあなたが望むものですか?)、単なる例:
mTelephonyMgr = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
String imei = mTelephonyMgr.getDeviceId();
同様に、あなたは持っています
String getSimCountryIso():
SIM プロバイダーの国コードに相当する ISO 国コードを返します。
String getSimOperator():
SIM のプロバイダーの MCC+MNC (モバイル国コード + モバイル ネットワーク コード) を返します。
String getSimOperatorName():
サービス プロバイダー名 (SPN) を返します。
String getSimSerialNumber():
該当する場合、SIM のシリアル番号を返します。
int getSimState():
デバイスの SIM カードの状態を示す定数を返します。
String getSubscriberId():
一意の加入者 ID (GSM 電話の IMSI など) を返します。
詳しくはこちらのページをご覧ください
マニフェストに正しいアクセス許可を追加することを忘れないでください ( getDeviceId() => Requires Permission: READ_PHONE_STATE
)
SEEK (Secure Element Evaluation Kit) の SmartCardAPI がなければ、それは不可能です。市場で入手可能な大部分の Android フォンでは、SmartCardAPI が実装されていません。したがって、SmartCardAPI コードを統合した後に独自の Android を構築するか、この機能を備えた適切な電話が登場するのを待ちます。実装用のパッチ ファイルは、ここにあります。
Android 用の SmartCard API に興味があるかもしれません: http://code.google.com/p/seek-for-android/
SIMカードへのアクセスは、システムアプリケーションでのみ可能です。
SIMカードへの低レベルのアクセスは、サードパーティのアプリでは利用できません。OSは、SIMカードメモリ上の個人情報(連絡先)へのアクセスを含む、SIMカードとのすべての通信を処理します。ATコマンドは、Radio Interface Layer(RIL)によって排他的に管理されるため、アプリケーションもATコマンドにアクセスできません。RILは、これらのコマンド用の高レベルAPIを提供していません。
ソース:https ://source.android.com/security/overview/app-security.html#sim-card-access