Android開發之獲取手機通話記錄

Android手機想要獲取通話記錄,可以使用CallLog。

java文件關鍵部分內容:

private ContentResolver cr;

private Cursor cursor;

private String LOG = "MobileCalls";

String str = "通話記錄:\n";

public void setContenResolver() {

int i = 0;

setCr(context.getContentResolver());

setCursor(getCr().query(CallLog.Calls.CONTENT_URI, // 使用系統URI,取得通話記錄

new String[] { CallLog.Calls.NUMBER, // 電話號碼

CallLog.Calls.CACHED_NAME, // 聯繫人

CallLog.Calls.TYPE, // 通話類型

CallLog.Calls.DATE, // 通話時間

CallLog.Calls.DURATION // 通話時長

}, null, null, CallLog.Calls.DEFAULT_SORT_ORDER));


// 遍歷每條通話記錄

for (cursor.moveToFirst(); !cursor.isAfterLast() && i < 100; cursor

.moveToNext()) {

String strNumber = cursor.getString(0); // 呼叫號碼

String strName = cursor.getString(1); // 聯繫人姓名

int type = cursor.getInt(2);

String str_type = "";

if (type == CallLog.Calls.INCOMING_TYPE) {

str_type = "呼入";

} else if (type == CallLog.Calls.OUTGOING_TYPE) {

str_type = "呼出";

} else if (type == CallLog.Calls.MISSED_TYPE) {

str_type = "未接";

}

long duration = cursor.getLong(4);

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Date date = new Date(Long.parseLong(cursor.getString(3)));

String time = sdf.format(date);

Log.i(LOG, "\n類型:" + str_type + "\n稱呼:" + strName + "\n號碼:"

+ strNumber + "\n通話時長:" + duration + "秒" + "\n時間:" + time

+ "\n---------------------\n");

i++;

}

}

當然,需要在MainFest.xml中申請以下權限:

<uses-permission android:name="android.permission.READ_CALL_LOG" /> <!-- 獲取通話記錄所需的權限 -->

然後你就可以查看手機通話記錄啦!


發佈了63 篇原創文章 · 獲贊 26 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章