安卓增加通话记录代码(安卓使用记录代码)
admin 发布:2022-12-31 07:30 118
今天给各位分享安卓增加通话记录代码的知识,其中也会对安卓使用记录代码进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
如何导入android系统的通话记录
涉及到对通话记录的读和写、需要在sd卡上写存放通话记录数据的文件,所以需要加权限:
[html] view plaincopy
uses-permission android:name="android.permission.READ_CALL_LOG"/
uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/
uses-permission android:name="android.permission.WRITE_CALL_LOG"/
首先,通话记录的获取,只需要获取部分字段即可满足即可:
将数据保存到一个自定义的Model对象中。
[html] view plaincopy
Cursor cursor = mContext.getContentResolver().query(CallLog.Calls.CONTENT_URI, null, "date ?", new String[] { "" + timestamp }, CallLog.Calls.DEFAULT_SORT_ORDER);
while (cursor.moveToNext()) {
CalllogModel calllogModel = new CalllogModel();
// name
calllogModel.setName(cursor.getString(cursor.getColumnIndex(CallLog.Calls.CACHED_NAME)));
// start call datetime
calllogModel.setDatetime(cursor.getLong(cursor.getColumnIndex(CallLog.Calls.DATE)));
// phonenumber
calllogModel.setNumber(cursor.getString(cursor.getColumnIndex(CallLog.Calls.NUMBER)));
// duration
calllogModel.setDuration(cursor.getLong(cursor.getColumnIndex(CallLog.Calls.DURATION)));
// call type
calllogModel.setType(cursor.getInt(cursor.getColumnIndex(CallLog.Calls.TYPE)));
// is read
calllogModel.setIs_read(cursor.getInt(cursor.getColumnIndex(CallLog.Calls.IS_READ)));
modifyVector(0, calllogModel, ADD_VECTOR); //调用保存到文件的方法
}
cursor.close();
cursor = null;
将通话记录导入到系统的数据库中:
[html] view plaincopy
ContentResolver contentResolver = mContext.getContentResolver();
values.put(CallLog.Calls.CACHED_NAME, calllogModel.getName());
values.put(CallLog.Calls.NUMBER, calllogModel.getNumber());
values.put(CallLog.Calls.DATE, calllogModel.getDatetime());
values.put(CallLog.Calls.DURATION, calllogModel.getDuration());
values.put(CallLog.Calls.IS_READ, calllogModel.getIs_read());
values.put(CallLog.Calls.TYPE, calllogModel.getType());
contentResolver.insert(CallLog.Calls.CONTENT_URI, values);
还有两点考虑:
1. 通话记录的保存方式:
选择通过文本文件来保存,一行算足一条通话记录。
每个通话记录以字符串的形式保存到文本文件
java中提供BufferReader和BufferWriter两个类可以支持一行一行的读和写
在导入通话记录的时候,读到一行记录,就处理一行:string-json-model-contentvalues-contentResolver.insert
2. 处理效率和OOM异常避免的情况
在处理导出通话记录的时候,通话记录的条数可能成千上万条。
在这样的情况下,需要注意:
a. 那么多记录数不能全部写到内存中,暂据的内存太大,容易报OOM的错误
b. 将那些数据写入到文件中的时候,不能每一次都打开IO流和关闭IO流,耗时耗资源
解决的方法是,维护一个集合Vectormodel,当从系统数据库中读取到一条记录的时候,将其vector,add(model);当每处理完一个model之后,通过vector.remove(0)获取新的Model对象进行处理。
读取记录的过程和处理记录的过程,用两个线程同步执行。
保证多线程下数据的安全考虑,对该集合变量的操作,用同步锁对其进行限定
[html] view plaincopy
/**
* 需要增加一个对象到集合的时候,type=1;需要获取一个对象的时候,type=2
* @param index
* @param calllogModel
* @param type
* @return
*/
private static synchronized CalllogModel modifyVector(int index, CalllogModel calllogModel, int type) {
switch (type) {
case 1:
if (calllogModels.size()1000) { //确保集合的体积不会过大
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
calllogModels.add(calllogModel);
break;
case 2:
if (!calllogModels.isEmpty()) {
return calllogModels.remove(0);
} else {
return null;
}
default:
break;
}
return null;
}
如何给手机增加通话记录
需要添加大量联系人,可以打开QQ主面板,切换到“通讯录”窗口,右键单击该窗口选择 “导入导出联系人”选项来进行添加。打开“导入导出向导”对话框(如图1)。选择“自动导入常用联系人”选框,可以将腾讯地址本、Windows通讯簿和Outlook中的联系人地址导入到QQ“通讯录”中。对于其它软件创建的通信录,如果可以将联系人地址导出为csv、vcf或wab文件,就可以选中“手动导入”选框将这些文件的联系人导入QQ“通讯录”。
如何给手机添加通话记录
通话记录不需要手动添加,手机自带的功能通话后会在通话记录自动生成聊天时长。
安卓源码通话记录是如何添加到列表的
通常情况下,在通话记录中打开要(想)存为联系人的通话记录,显屏上就有“创建联系人”(Create Contact) 的选择。点击后逐行(项)填入相关信息,包括存到手机还是存到SIM卡,联系人姓名,电话号码类别(手机或座机)等,最后点“存储”即可。 在...
android 如何读取通话记录
安卓手机上的通话记录可以按照以下步骤来进行获取(包括删除的通话记录)。
1,首先对安卓手机进行一键Root,方法很简单,在电脑上安装“360一键Root”软件,然后按提示,将安卓手机用数据线连接到电脑上对其进行Root即可。
2,接着需要在手机上安装一款能够获取root权限的文件管理器,国外高手开发的“RE管理器rootexplorer”就是一款挺不错的app,可以在手机上的“360手机助手”,“小米应用商店”等任意应用市场上搜索下载该app。
3,在刚安装的rootexplorer中,进入到“data/data/com.sec.android.provider.logsprovider/databases/”目录,然后对该目录下的logs.db文件进行复制,再返回到根目录。
说明:如果你的手机上找不到logs.db的话,说明你的手机上的通话记录并不是保存在这个文件中,请跳过此步,直接操作下一步即可。
4,如果你的手机上找不到logs.db文件,则请进入“data/data/com.android.providers.contacts/databases/”目录,然后对该目录下的contacts2.db文件进行复制,再返回到根目录。
5,再进入根目录下的sdcard文件夹,并点击下图红框中的“复制到此”图标即可。
6,接着再次把手机连接到电脑上,在电脑上的手机盘符中就可以看到刚复制的logs.db(或contacts2.db)文件了,将其复制并粘贴到电脑上。
7,在电脑上下载并安装“楼月手机通话记录恢复软件”,使用该软件打开刚导出的logs.db或contacts2.db文件。
8,现在就可以看到安卓手机上现存的通话记录了,接着点击“恢复已删除的通话记录”菜单。
9,这样,就在电脑上获取到了安卓手机上的所有通话记录,红色文字就是恢复回来的通话记录,不但对通话时间,通话时长,对方号码等都显示在了界面上。
安卓增加通话记录代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于安卓使用记录代码、安卓增加通话记录代码的信息别忘了在本站进行查找喔。
版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;
相关推荐
- 06-03常见刮刮乐代码含义(刮刮乐上的代码)
- 08-03派出所代码表(派出所代码表大全两位数)
- 07-05派出所的组织代码(派出所机构代码在哪查)
- 09-03网易云音乐代码(网易云音乐代码大全)
- 08-01源代码查看答案(源代码怎么看答案)
- 09-22查看手机屏幕代码(手机查询屏幕代码)
- 08-22qq强行聊天代码(强制聊天器在线使用)
- 04-19软件源代码使用许可协议(开源许可协议)[20240419更新]
- 07-28网页代码怎么呼出(怎么样调出网页代码)
- 09-13怎么查看app源代码(如何查看手机app源代码)
取消回复欢迎 你 发表评论:
- 标签列表
- 最近发表
- 友情链接