2011-12-22 33 views
1

着信および発信呼び出しに対して別のアクションを実行するため、着信および発信用の別のブロードキャスト受信者 を書き込むことはできますか。 これを区別する方法はありますか?私はあらゆる種類の方法を試みたが、うまくいかなかった。着信用に別の受信者

+1

どのようなツールを使用しますか?どの電話ですか?何語?あなたが針を下に置いてどこに質問を開始するには動作しません。 –

+0

あなたは何を試してみましたか?そしてどうしたのですか? – ArjunShankar

+0

私はアンドロイドのアドレス帳のアプリケーションを開発しています、私はサーバーとは別に、着信と発信番号を同期したいです。 – monika

答えて

0

あなたは、クラスを使用すると、方法をonCallStateChangedすべきPhoneStateListenerを拡張することができます。 TelephonyManager.CALL_STATE_IDLEへの電話の状態が変化したら、あなたは、コールログを解析することができます

final String[] callsProjection = new String[] { Calls.TYPE, Calls.DURATION, Calls.DATE, Calls.NUMBER }; 
final Cursor cursor = mContext.getContentResolver().query(Calls.CONTENT_URI, callsProjection, null, null, Calls.DATE + " DESC"); 

あなたがその情報を持っていたら、あなたは簡単にコールタイプのための最後のエントリを確認することができます。

if (cursor.moveToFirst()) { 
     final int idType = cursor.getColumnIndex(Calls.TYPE); 
     if(t == Calls.INCOMING_TYPE) {    
     } else if (t == Calls.OUTGOING_TYPE) { 
     } else { /* missed call */ } 
    } 
    cursor.close(); 

注:通話ログを解析する前に、情報がログに書き込まれていることを確認するために、数秒待つことができます(3分で十分です)。

+0

ありがとうございます。しかし、私はコール中にこれを行うことができます。コールが開始されると、エントリはすぐにコールログに入ります – monika

+0

いいえ、そうではありません。エントリは、コールが終了した後(実際に数秒後に)ログに記録されます。 – karcsi

関連する問題