SMS を受信するデバイス (複数の SIM カードを使用) の IMSI/電話番号を必要とするアプリケーションを開発しています。
これは基本的に、どの SIM が SMS を受信しており、後でさらに操作を実行しているかを識別するためのものです。
SMSMessage API を徹底的に検索しましたが、適切な解決策が見つかりませんでした。
どんな助けでも大歓迎です。
私が知っているように、着信 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();