安卓隨機通話記錄_Android 通話記錄

查詢通話記錄

private static final String[] CALLLOGS_PROJECTION = new String[]{CallLog.Calls._ID,

CallLog.Calls.CACHED_NAME, CallLog.Calls.NUMBER, CallLog.Calls.TYPE, CallLog.Calls.DATE,

CallLog.Calls.DURATION};

/**

*

* 概述:獲取最近10條通話記錄

*/

public ArrayList getCallLogs() {

mCallLogBeans.clear();

ContentResolver resolver = mContext.getContentResolver();

// 獲取手機聯系人

@SuppressLint("MissingPermission")

Cursor phoneCursor = resolver.query(CallLog.Calls.CONTENT_URI,

CALLLOGS_PROJECTION, null, null, "date DESC");

if (phoneCursor != null) {

while (phoneCursor.moveToNext()) {

// 得到手機號碼

String phoneNumber = phoneCursor.getString(PHONES_NUMBER_INDEX);

// 當手機號碼為空的或者為空字段 跳過當前循環

if (TextUtils.isEmpty(phoneNumber))

continue;

// 得到聯系人名稱,通過數據庫查詢的方式有的手機有問題,通話記錄不會緩存聯系人姓名(中興天機7),只能去查通訊錄對應的人名

String contactName = phoneCursor.getString(PHONES_DISPLAY_NAME_INDEX);

if (TextUtils.isEmpty(contactName)) {

contactName = getPhoneTrueName(phoneNumber);

}

if (TextUtils.isEmpty(contactName)) continue;

PersonBean bean = new PersonBean();

bean._id = phoneCursor.getLong(phoneCursor.getColumnIndex(CallLog.Calls._ID));

bean.name = contactName;

bean.phoneNum = phoneNumber.replace(" ", "").replace("+86", "");

bean.date = phoneCursor.getLong(phoneCursor.getColumnIndex(CallLog.Calls.DATE));

bean.duration = phoneCursor.getString(phoneCursor.getColumnIndex(CallLog.Calls.DURATION));

bean.type = phoneCursor.getInt(phoneCursor.getColumnIndex(CallLog.Calls.TYPE));

bean.pinyinName = Pinyin.toPinyin(bean.name, "");

LogUtils.instance().d(TAG, "PersonBean [" +bean.toString()+"]");

boolean isContained = false;

for (PersonBean bean2 : mCallLogBeans) {

if (bean2.phoneNum.equals(bean.phoneNum)) {

isContained = true;

break;

}

}

if (!isContained) {//如果沒有這個號碼則加入數組

mCallLogBeans.add(bean);

if (mCallLogBeans.size() > 8) {

break;

}

}

}

phoneCursor.close();

}

return mCallLogBeans;

}

秒數轉時長

public static long[] secondNum2Time(String timeStr) {

long[] longs = new long[]{0,0,0};

if (TextUtils.isEmpty(timeStr)) return longs;

long time = Long.parseLong(timeStr);

long hour = time / 3600;

long minute = time / 60 % 60;

long second = time % 60;

longs[0] = hour;

longs[1] = minute;

longs[2] = second;

return longs;

}

通話記錄的type

public String getTypeStr() {

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

return "來電";

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

return "去電";

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

return "未接";

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

return "語音郵件";

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

return "拒絕";

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

return "阻止";

} else {

return "未知";

}

}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/277588.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/277588.shtml
英文地址,請注明出處:http://en.pswp.cn/news/277588.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【c基礎】入門語法

%d:占位符 表示要輸出一個整形數。 %f:為float 浮點數 %lf:為double型 雙精度浮點數 \n:換行 const:定義一個常量,一旦被初始化就不能修改,只讀的變量(read-only variable)。 整數運算 的結果是整數 如果有小數就拋棄沒有考慮四舍五入。 一&a…

vue的移動app項目中,自定義拖拽指令的問題

使用vue的都知道vue有一個自定義指令,我比較喜歡的就是拖拽的自定義指令,感覺挺方便的! //組件內的拖拽指令 directives: {//組建內自定義指令drag: {// 指令的定義bind: function(el, value) {let oDiv el; //當前元素let self this; //上…

彈窗php整人_[整人小程序] 超級信息框(無限彈窗++)

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓貌似剛才縮進空格被吞了,再發一次Set FSO  createobject("scripting.filesystemobject")Set ws  Createobject("Wscript.shell")Set SA  CreateObject("Shell.Application")If …

day22 Java學習 IO流(序列流)

IO流(序列流) 序列流: * 可以把多個字節輸入流整合成一個,從序列流中讀取數據時,將從被整合的第一個流開始讀,讀完一個之后繼續讀第二個。 整合方式: * Seq uenceInputStream ( InputStream &am…

網站建設-簡單動態網站搭建

通過前面Clouder課程的學習,或許你已經掌握了在云服務器上發布和部署靜態網頁的方法,那么如何搭建一個可以隨時更新內容的動態網站?通過本課程的學習,你將掌握如何在云端搭建全世界使用最多的WordPress網站的方法,并學…

mysql的concat函數_MySQL中concat函數(連接字符串)

MySQL中concat函數使用方法:CONCAT(str1,str2,…)返回結果為連接參數產生的字符串。如有任何一個參數為NULL ,則返回值為 NULL。注意:如果所有參數均為非二進制字符串,則結果為非二進制字符串。如果自變量中含有任一二進制字符串&…

利用airTest的圖像實別技術測試Web應用

airTest的第三方類庫中有圖像實別功能,根據官網的介紹,這個功能是能夠在Windows上用來定位元素,進行操作的。嘗試過以下腳本,發現真的可以。 from selenium.webdriver.chrome.options import Options from selenium import webdri…

MySQL主從復制故障解決

叢庫復制停止,進叢庫查看,報錯1007,數據庫已存在,不能創建數據庫 mysql> show slave status\G; Slave_IO_Running: Yes Slave_SQL_Running: No Last_Errno: 1007 Last_Error: Error Cant create database test; database exis…

Unraveling the JPEG file

(文章還剩實踐部分沒寫,答辯過后補上...) JPEG文件在當下數字化生活中是無處不在的,但是在熟悉的JPEG面紗背后,隱藏著一些算法,它們去除了人類眼中無法察覺到的細節。這產生了最高的視覺質量與最小的文件大小。讓我們來看看這一算…

mysql interval 3 day_Mysql之INTERVAL與DATE_SUB與EXTRACT函數的使用

1. INTERVALINTERVAL代表的是時間間隔MySQL中的時間間隔類型有如下幾種:1.1 利用INTERVAL做時間的加減法示例:加法:SQL>SELECT DATE 2018-11-01 INTERVAL 10 11 DAY_HOUR;結果:2018-11-11 11:00:00減法:SQL> select date 2018-11-11 11:00:00 -INT…

(二十四)面向對象

class Car {int num;String name;String color;public static void run() {System.out.println("行駛中");} } //再類中定義的變量:成員變量 //在類中定義的函數:成員函數 class Demo1 {public static void main(String[] args) {//創建一個ca…

mysql 三主_MySQL主主復制3

一、創建并授權用戶在每一臺(主)服務器上創建一個用戶,并為之授權,使它們可以互相訪問彼此的數據庫在Server-1上:創建一個充許Server-2來訪問的用戶server2,密碼為:server2mysql> GRANT REPLICATION SLAVE ON *.*> TO ‘ser…

0727日志

為什么80%的碼農都做不了架構師?>>> c端線上地址 http://x.diandanme.com/fe/?d183#/ 什么時候來需求,我做好準備了嗎? eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC94LmRpYW5kYW5tZS5jb21cL2FwaVwvd2VjaGF0XC…

Python基礎學習總結__Day3

一、集合 1.特性:無序且天生去重,格式為{} 2.作用: (1)去重 (2)關系測試 3.可調用函數(常見對列表操作) (1)取…

day8網絡編程,面向對象1

一.只是回顧 1.導入模塊的順序,首先從當前目錄下找,再從環境變量里面找,使用"sys.path.insert(0,需要導入的環境變量)"加入需要導入文件的環境變量; 2.如果不同項目中有相同的文件,需要導入文件,需要將非當前項目中右鍵添加的環境變量取消,將當前的環境變量添加上去;…

mysql練手數據_MySQL新手練習

操作插入數據 的語法 :INSERT INTO 表名稱 VALUES(值1,值2,......);修改數據 的語法:UPDATE 表名稱 SET 字段名1 值1, 字段名2值2,...... 【WHERE 條件】;刪除數據 的語法:delete from 表名 【[where 條件】;delete 表1&#xff…

spring security config

spring secuirty 相關的配置解析 permitAll()與web.ignoring() ingore是完全繞過了spring security的所有filter,相當于不走spring securitypermitall沒有繞過spring security,其中包含了登錄的以及匿名的。轉載于:https://www.cnblogs.com/MND1024/p/10…

TSPITR方式數據庫找回誤操作丟失的數據

一、TSPITR介紹 TSPITR全稱是Tablespace Point In Time Recover(表空間基于時間點的不完全恢復)。原理是通過輔助實例基于時間還原出誤操作前的數據通過DataPump將數據導入到目標數據庫。TSPITR的最大好處是不需要生產庫停機。 二、適用場景 表空間時點恢…

烏班圖系統的MySQL_烏班圖系統mysql主從備份

一.準備系統:ubuntu 14.04.2 LTSMysql: server version 5.5.43兩臺主機可以互相通信:192.168.1.11 master192.168.1.12 slave二.步驟Master部分:1.創建備份帳號:slave密碼:slaveGrant repl…

mysql table alter_MySQL-ALTER TABLE命令學習[20180503]

學習ALTER TABLE刪除、添加和修改字段和類型CREATE TABLE alter_tab01(id int,col01 char(20))enginInnoDB default charsetutf8;刪除字段ALTER TABLE DROP ;mysql> alter table alter_tab01 dropcol01;Query OK, 0 rows affected (0.01sec)Records: 0 Duplicates: 0 Warnin…