如何处理来电/去电的开始/结束?
换句话说“赶上传入/传出呼叫开始/结束的时刻”( 答案和挂断之间的时间)并将其写入日志。
Android版本为2.3
答案 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上使用它,它正常工作。