我需要在他从Android手机拨打电话后立即获取电话号码,然后当通话结束时我需要通话时间。
答案 0 :(得分:2)
创建一个广播接收器并在接收器onReceive()
方法中写入以下内容
这个接收器返回你的呼叫的最后一个记录,但是做一些时间延迟,以便它可以返回当前记录。
Cursor c=context.getContentResolver().query(android.provider.CallLog.Calls.CONTENT_URI,null, null, null,android.provider.CallLog.Calls.DATE + " DESC");
int numberColumn = c.getColumnIndex(android.provider.CallLog.Calls.NUMBER);
int dateColumn = c.getColumnIndex(
android.provider.CallLog.Calls.DATE);
// type can be: Incoming, Outgoing or Missed
int typeColumn = c.getColumnIndex(android.provider.CallLog.Calls.TYPE);
int DurationColumn = c.getColumnIndex(android.provider.CallLog.Calls.DURATION);
写下您的mainfest file
<receiver android:name="Your Receiver">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
</receiver>
在onRecieve上放这个
Bundle bundle = intent.getExtras();
Set<String> keys = bundle.keySet();
for (String key : keys) {
Log.i("MYAPP##", key + "="+ bundle.getString(key));
if(bundle.getString(key).equals("IDLE"))
{
}
}