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" /> <!-- 獲取通話記錄所需的許可權 -->

 

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

 

創作者介紹
創作者 shadow 的頭像
shadow

資訊園

shadow 發表在 痞客邦 留言(0) 人氣()