失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > android p获取通话记录_[android] 取得最近通话记录的方法

android p获取通话记录_[android] 取得最近通话记录的方法

时间:2024-02-07 19:34:47

相关推荐

android p获取通话记录_[android] 取得最近通话记录的方法

经过一下午的研究,终于弄明白了android中,关于通话记录取得的方法。下边是自己的一点心得。

final Cursor cursor = cr.query(CallLog.Calls.CONTENT_URI, new

String[] {

CallLog.Calls.NUMBER, CallLog.Calls.CACHED_NAME,

CallLog.Calls.TYPE, CallLog.Calls.DATE }, null, null,

CallLog.Calls.DEFAULT_SORT_ORDER);

final Cursor cursor =

cr.query(数据库表名,取得的数据数组(里边包含字段名称),条件,参数组,排序等信息)

//这就相当于一条SQL语句//取得所有通话信息 这里边稍微有点复杂

for (int i = 0; i < cursor.getCount(); i++)

{

cursor.moveToPosition(i);

str =

cursor.getString(0);

type =

cursor.getInt(2);

if (type == 3) {

tel = str;

break;

}

} //取得值

final Cursor cursor = cr.query(CallLog.Calls.CONTENT_URI, new

String[] {

CallLog.Calls.NUMBER }, "type=3", null,

"date desc limit 1");

//这个就是取得最近的一次未接来电的电话号码。

if(cursor.moveToFirst()){

tel =

cursor.getString(0);

}

这个取值之后和最上边的值是一样的。

CallLog.Calls.CONTENT_URI

(通话记录数据库)

CallLog.Calls.NUMBER

(通话号码)

CallLog.Calls.CACHED_NAME

(通话人姓名)

CallLog.Calls.TYPE

(通话类型)

呼叫记录有三种类型:

来电:CallLog.Calls.INCOMING_TYPE(常量值:1)

已拨:CallLog.Calls.OUTGOING_TYPE(常量值:2)

未接:CallLog.Calls.MISSED_TYPE(常量值:3)

其实还有一种类型-拒接 系统未给出常量。但经测试后得出结论为4.

CallLog.Calls.DATE

(通话时间)

需要声明的权限 在AndroidManifest.xml中加入

android:name="android.permission.READ_CONTACTS"

/>读记录

android:name="android.permission.WRITE_CONTACTS"

/>写记录

这两条是和节点同级的

如果想加入呼叫权限,还要加上

android:name="android.permission.CALL_PHONE" />

还有发送短信权限

android:name="android.permission.SEND_SMS" />

还有连接互联网权限

CallLog.Calls.CONTENT_URI

:等价于:Uri.parse("content://call_log/calls");

如果觉得《android p获取通话记录_[android] 取得最近通话记录的方法》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。