-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