2012-02-16 23 views
-1

着信/発信コールの開始/終了を処理するにはどうすればよいですか?着信/発信コールの開始/終了を処理する方法

言い換えれば、「着信/発信通話が開始/終了している瞬間をキャッチする」(時からまでの時間を応答とハングアップ)、ログに書き込んでください。

Androidバージョンは2.3です。

+0

[TelephonyManager?](http://developer.android.com/reference/android/telephony/TelephonyManager.html) – m0skit0

答えて

2

「ハンドル」とはどういう意味ですか?意図?発信と着信:あなたは2つのBroadcastReceiverクラスを持っています見ることができるよう、

ので
<receiver android:name=".Outgoing"> 
         <intent-filter> 
          <action android:name="android.intent.action.NEW_OUTGOING_CALL"/> 
         </intent-filter> 
     </receiver> 

     <receiver android:name=".Incoming"> 
         <intent-filter> 
          <action android:name="android.intent.action.PHONE_STATE"/> 
         </intent-filter> 
     </receiver> 

は、マニフェストXMLの次の行に追加: -

OKここにはどのようにあります。

public class Outgoing extends BroadcastReceiver { 

@Override 
public void onReceive(Context context, Intent intent) { 
     context.startService(new Intent(context, LogService.class)); 
} 

}

(私はcontext.startServiceを使用している理由ですので、私はこのクラスから自分のサービスを開始しています...)

ここにあります:ここで

はOutgoing.javaですIncoming.java:

public class Incoming extends BroadcastReceiver { 

@Override 
public void onReceive(Context context, Intent intent) { 
     Bundle bundle = intent.getExtras(); 

     if(null == bundle) 
       return; 

     String state = bundle.getString(TelephonyManager.EXTRA_STATE); 

     if(state.equalsIgnoreCase(TelephonyManager.EXTRA_STATE_RINGING)) 
     { 
      context.startService(new Intent(context, LogService.class)); 
     } 
} 


} 

私はジンジャーブレッドとフロイでこれを使用しており、正常に動作しています。

+0

「着信/発信の開始/終了時を捉える」という意味です。 – Alexandre

+0

あなたのコードは実際にコールの開始/終了の瞬間を捕まえていますか?私は**答えとハングアップの間**時間を意味します。 – Alexandre

+0

もちろん、私が言ったように、私はそれを使用しています。私はすべての通話を逃すことができます。 –

関連する問題