3

SMS を受信するデバイス (複数の SIM カードを使用) の IMSI/電話番号を必要とするアプリケーションを開発しています。

これは基本的に、どの SIM が SMS を受信して​​おり、後でさらに操作を実行しているかを識別するためのものです。

SMSMessage API を徹底的に検索しましたが、適切な解決策が見つかりませんでした。

どんな助けでも大歓迎です。

4

1 に答える 1

4

私が知っているように、着信 SMS から宛先の電話番号、IMSI を取得することはできません。

こんな感じでSIMのIMSIと電話番号が取得できます。

SIM の IMSI 番号を取得できますが、すべての SIM の電話番号を取得できるとは思いません。SIM に電話番号を保存していないメーカーがあるため、NULL が取得されます。

Android では、Android SDK を使用して 2 つ目の SIM 情報を取得する方法はありません。最初のSIMのみの情報を取得できます。

Android SDK は最初の SIM 情報をサポートし、デュアル SIM 機能は製造側から利用できるため、Android SDK から公式にサポートされていません。

この AndroidManifest.xml を追加します

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

SIM の詳細を取得する場所にこれを追加します。

TelephonyManager telemamanger = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);

1st SIMのIMSIを取得するには

String imsi = telemamanger.getSimSerialNumber();

1st SIMの電話番号を取得するには

if(telemamanger.getLine1Number() != null)
    String phoneNumber = telemamanger.getLine1Number();
于 2013-04-29T13:01:05.937 に答える