我需要在他从他的 android 手机调用电话后立即获取电话号码,然后在通话结束时我需要通话时长。
最佳答案
创建一个广播接收器并在接收器 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文件
之后写下
<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"))
{
}
}
关于android - 如何获取电话号码以及Android用户调用电话的持续时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9030162/