2012-03-22 3 views
0

私はコールログにア​​プリケーションを作成していますが、私はこの考えに遭遇しました。今や、電話ダイヤラからの電話と、デバイスにインストールされているVoIPソフトウェアからの電話は、コールログとして表示され、Voipソフトウェアが電話ボタンを押すと電話ダイヤラを呼び出すため、推測しています。今私は、VoIPの呼び出しを排除するためのソリューションを考えていると私はこのアイデアを思い付いたが、それが実現可能かどうかわからない。通話ログにはSIM通番が登録されていますか?

これで、特定のコールとの間で特定のコールが行われた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); 

私はいくつかの提案とコードの助けに感謝します。

答えて

1

ここで、特定のコールとの間で特定のコールが行われたSIMカードのシリアル番号を取得できますか。

いいえ、いずれのダイヤラからのログでも区別できません。

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

+0

しかし、PhoneCall Listenerを作成して、コールが行われるたびに発信コールを登録し、コールログとSIMシリアル番号をデータベースに保存/保存することは可能でしょうか? –

+0

はい、発信および着信を監視できます。 (StackOverFlowにかなりの数の良い例があります) - >私がこのアプローチで見ている問題は、何トンものVoIPコールを作った後にあなたのアプリケーションをインストールすればどうなるでしょうか?それらはすべて記録されており、あなたは知らないでしょう。 – Calvin

+0

はい、あなたは正しいですが、アプリがインストールされた日からの呼び出しのみを受けるという制限があります。あなたが話している良い例のリンクを追加できますか?私は私の検索から何も得ていないようです。 –

0

コードを実行すると、現在または例外がありますか? 許可をREAD_PHONE_STATEに設定しましたか?これはgetSimSerialNumber()メソッドを使用するために必要です。

+0

はい私はREAD_PHONE_STATEを設定していますが、シームレスシリアル番号を取得できます。しかし、私が欲しいのは、特定のSIMカードで行われたすべてのコールに対してSIMシリアル番号が登録されているのか、それともsimシリアル番号から発信されたのかを知るためです。 –

0

テレフォニーマネージャを使用する必要があります。ユーザーの

インポート:

import android.telephony.TelephonyManager; 

あなたは

追加許可...同じテレフォニーマネージャクラスを使用してSIMカードとAndroidデバイスのIMEI番号のシムシリアル番号を取得することができます次のコードを使用します。

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

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

    // get SimSerialNumber 
    simSerialNumber = tm.getSimSerialNumber(); 
関連する問題