-1
A
回答
0
首先添加此权限
<uses-permission android:name="android.permission.READ_CONTACTS" />
使用LoaderManager.LoaderCallbacks界面在你的活动是这样的: ():
@Override
public Loader onCreateLoader(int loaderID, Bundle args) {
Log.d(TAG, "onCreateLoader() >> loaderID : " + loaderID);
switch (loaderID) {
case URL_LOADER:
// Returns a new CursorLoader
return new CursorLoader(
this, // Parent activity context
CallLog.Calls.CONTENT_URI, // Table to query
null, // Projection to return
null, // No selection clause
null, // No selection arguments
null // Default sort order
);
default:
return null;
}
}
打电话给你的细节onLoadFinished()方法:
Override
public void onLoadFinished(Loader loader, Cursor managedCursor) {
Log.d(TAG, "onLoadFinished()");
StringBuilder sb = new StringBuilder();
int number = managedCursor.getColumnIndex(CallLog.Calls.NUMBER);
int type = managedCursor.getColumnIndex(CallLog.Calls.TYPE);
int date = managedCursor.getColumnIndex(CallLog.Calls.DATE);
int duration = managedCursor.getColumnIndex(CallLog.Calls.DURATION);
sb.append("<h4>Call Log Details <h4>");
sb.append("\n");
sb.append("\n");
sb.append("<table>");
while (managedCursor.moveToNext()) {
String phNumber = managedCursor.getString(number);
String callType = managedCursor.getString(type);
String callDate = managedCursor.getString(date);
Date callDayTime = new Date(Long.valueOf(callDate));
String callDuration = managedCursor.getString(duration);
String dir = null;
int callTypeCode = Integer.parseInt(callType);
switch (callTypeCode) {
case CallLog.Calls.OUTGOING_TYPE:
dir = "Outgoing";
break;
case CallLog.Calls.INCOMING_TYPE:
dir = "Incoming";
break;
case CallLog.Calls.MISSED_TYPE:
dir = "Missed";
break;
}
sb.append("<tr>")
.append("<td>Phone Number: </td>")
.append("<td><strong>")
.append(phNumber)
.append("</strong></td>");
sb.append("</tr>");
sb.append("<br/>");
sb.append("<tr>")
.append("<td>Call Type:</td>")
.append("<td><strong>")
.append(dir)
.append("</strong></td>");
sb.append("</tr>");
sb.append("<br/>");
sb.append("<tr>")
.append("<td>Date & Time:</td>")
.append("<td><strong>")
.append(callDayTime)
.append("</strong></td>");
sb.append("</tr>");
sb.append("<br/>");
sb.append("<tr>")
.append("<td>Call Duration (Seconds):</td>")
.append("<td><strong>")
.append(callDuration)
.append("</strong></td>");
sb.append("</tr>");
sb.append("<br/>");
sb.append("<br/>");
}
sb.append("</table>");
managedCursor.close();
callLogsTextView.setText(Html.fromHtml(sb.toString()));
}
完整的详细信息,请参阅这些参考资料:
相关问题
- 1. 如何在并发呼叫时拨打SIP呼叫会话
- 2. javascript呼叫信息
- 3. POST呼叫bluemix对话框
- 4. firebase关闭呼叫关闭连接
- 5. QBChat didReceiveMessage在接到呼叫时没有被呼叫
- 6. 如何在.NET应用程序中实时从VoIP获取呼叫者信息?
- 7. Api呼叫请求每小时呼叫限制1个呼叫
- 8. 呼叫时NGRX
- 9. 如何在呼叫者在车上时保持呼叫活着?
- 10. iphone呼叫转移信息
- 11. 电话呼叫应用
- 12. 如果应用程序未运行(Viber,如呼叫功能),则接收呼叫
- 13. 呼叫的同时
- 14. 休息呼叫
- 15. 短信接收的广播接收机在Android中的未接呼叫时发出消息呼叫
- 16. 在Ionic中获取电话呼叫持续时间信息
- 17. 如何在接到呼叫时处理会话
- 18. 呼叫应答器的异步呼叫
- 19. 会话长度在呼叫开始时还是在呼叫结束时延长?
- 20. 当使用resp api创建呼叫时,没有振铃的呼叫
- 21. 如何从Kamailio获取呼叫信息
- 22. 有关呼叫
- 23. 处理应用程序关闭来自图标的呼叫
- 24. 程序链接表和呼叫相对
- 25. 功能利用 - 使用应用与直接呼叫呼叫
- 26. 呼叫`eval`超时
- 27. 呼叫时发现()
- 28. 并发呼叫对话
- 29. 收到呼叫时的呼叫动作android
- 30. 如何使用Twilio进行实时语音电话呼叫而不是在应答呼叫时只播放MP3?
谢谢新,但ÿ问题在于,当我接到电话时,同时我想显示一个用户呼叫活动信息对话框 – Mike
这是核心逻辑。在onCreateLoader中调用细节,而不是onload finsh()函数。 – 2017-03-16 07:27:25
查看链接2中的MainActivity代码并更改初始化函数,如下所示: – 2017-03-16 07:33:39