如何处理传入/传出呼叫的开始/结束

时间:2012-02-16 16:51:18

标签: android

如何处理来电/去电的开始/结束?

换句话说“赶上传入/传出呼叫开始/结束的时刻”( 答案和挂断之间的时间)并将其写入日志。

Android版本为2.3

1 个答案:

答案 0 :(得分:2)

'句柄'是什么意思?意图是什么?

好的 - 这是如何:

在下一行添加到清单XML:

<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>

所以,你可以看到你将有2个BroadcastReceiver类:Outgoing和Incoming。

这是Outgoing.java:

public class Outgoing extends BroadcastReceiver {

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

}

(我正在从这个班级开始我的服务,这就是我使用context.startService的原因......)

这是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));
        }
}


}

我在姜饼和froyo上使用它,它正常工作。