近期公司業(yè)務(wù)調(diào)整石抡,讓我做一個(gè)手機(jī)通話記錄獲取并上傳的功能,手機(jī)通話記錄數(shù)據(jù)庫中大部分信息都可以獲取到助泽,唯獨(dú)參與通話的本機(jī)號碼拿不到啰扛,讓人很是頭疼嚎京,先記錄一下。
代碼如下
//獲取通話記錄
private void getContentCallLog() {
Cursor cursor = getContentResolver().query(callUri, // 查詢通話記錄的URI
// columns 數(shù)據(jù)庫列選擇 不選則獲取所有列
null
, null, null, CallLog.Calls.DEFAULT_SORT_ORDER// 按照時(shí)間逆序排列隐解,最近打的最先顯示
);
Log.i(TAG, "cursor count:" + cursor.getCount());
int i = 0;
while (cursor.moveToNext() && i < 20) {
i++;
String name = cursor.getString(cursor.getColumnIndex(CallLog.Calls.CACHED_NAME)); //姓名
String number = cursor.getString(cursor.getColumnIndex(CallLog.Calls.NUMBER)); //號碼
long dateLong = cursor.getLong(cursor.getColumnIndex(CallLog.Calls.DATE)); //獲取通話日期
String date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(dateLong));
String time = new SimpleDateFormat("HH:mm").format(new Date(dateLong));
int duration = cursor.getInt(cursor.getColumnIndex(CallLog.Calls.DURATION));//獲取通話時(shí)長鞍帝,值為多少秒
int type = cursor.getInt(cursor.getColumnIndex(CallLog.Calls.TYPE)); //獲取通話類型:1.呼入2.呼出3.未接
String dayCurrent = new SimpleDateFormat("dd").format(new Date());
String dayRecord = new SimpleDateFormat("dd").format(new Date(dateLong));
String phone_account_address = cursor.getString(cursor.getColumnIndex("phone_account_address"));//本機(jī)號碼可能獲取不到(華為、oppo獲取不到)
String phone_account_id = cursor.getString(cursor.getColumnIndex(CallLog.Calls.PHONE_ACCOUNT_ID));//本機(jī)sim卡id煞茫,即ICCID
String phone_account_hidden = cursor.getString(cursor.getColumnIndex("phone_account_hidden"));
//
Log.i(TAG, "Call log: " + "\n"
+ "name: " + name + "\n"
+ "date: " + date + "\n"
+ "phone number: " + number + "\n"
+ "phone_account_address: " + phone_account_address + "\n"
+ "phone_account_id: " + phone_account_id + "\n"
+ "phone_account_hidden: " + phone_account_hidden + "\n"
);
}
}
String phone_account_address = cursor.getString(cursor.getColumnIndex("phone_account_address"));//本機(jī)號碼可能獲取不到(華為帕涌、oppo獲取不到)
String phone_account_id = cursor.getString(cursor.getColumnIndex(CallLog.Calls.PHONE_ACCOUNT_ID));//本機(jī)sim卡id,即ICCID 可能獲取不到(華為溜嗜、oppo獲取不到)
這兩條信息在華為手機(jī)上獲取不到宵膨,有了解的大神幫忙指點(diǎn)一下