0

私は通話履歴に基づいてアプリケーションを作成していますが、このアイデアに出くわしました。これで、電話ダイヤラーからの通話と、デバイスにインストールされているvoipソフトウェアからの通話も通話ログとして表示され、Voipで通話ボタンが押されるたびにVoipソフトウェアが電話ダイヤラーを呼び出すため、推測されます。今、私はVoIP通話を排除するための解決策を考えており、このアイデアを思いつきましたが、それが実現可能かどうかはわかりません。

これで、特定の通話が発信された、または発信されたSimカードのシリアル番号を取得できますか?

これが私が使用しているコード行です。

        Telly=(TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
    simSerialNumber=Telly.getSimSerialNumber();
    Cursor Logs_query=managedQuery(CallLog.Calls.CONTENT_URI, null, null, null, null);
    int number=Logs_query.getColumnIndex(CallLog.Calls.NUMBER);

私は提案とコードでいくつかの助けをいただければ幸いです。

4

3 に答える 3

1

これで、特定の通話が発信された、または発信されたSimカードのシリアル番号を取得できますか?

いいえ、ログがどのダイヤラからのものであるかを区別することはできません。

コールログコンテンツプロバイダーは、ログを挿入するダイヤラの情報を保存しません。

于 2012-03-22T09:19:30.820 に答える
0

そのコードを実行した場合、今すぐ結果や例外がありますか?そして、あなたは許可を設定しましたREAD_PHONE_STATEか?これは、getSimSerialNumber()メソッドを使用するために必要です。

于 2012-03-22T09:04:48.953 に答える
0

テレフォニーマネージャーを使用する必要があります。連絡先がまったく見つからない場合は、ユーザーの; 同じテレフォニーマネージャークラスを使用して、SimカードのSimシリアル番号とAndroidデバイスのImei番号を取得できます...

権限を追加します:

輸入:

import android.telephony.TelephonyManager;

以下のコードを使用してください。

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

     // get IMEI
     imei = tm.getDeviceId();

     // get SimSerialNumber
     simSerialNumber = tm.getSimSerialNumber();
于 2014-01-29T06:33:18.210 に答える