Android获取通话记录

简介:
public class CallHistoryHelper {
	
	public static String getCallHistoryStr(Context context) {
		String callHistoryJson = "";

	    callHistoryJson= GetHostCommlog(context);

		return callHistoryJson;
	}
	
	private static JSONObject GetData(Cursor aCursor) {
//		CallHistory commlogdata = new CallHistory();
		String date=DateFormatTools.DateFormat(Long.parseLong(aCursor.getString(aCursor.getColumnIndex("date"))));
	Long duration=aCursor.getLong(aCursor.getColumnIndex("duration"));
		String name = aCursor.getString(aCursor.getColumnIndex("name"));
		if(name==null||name.equals(""))
		{
			name = aCursor.getString(aCursor
					.getColumnIndex("number"));
		}
		
		String number=aCursor.getString(aCursor
				.getColumnIndex("number"));
		
		JSONObject obj=new JSONObject();
		
		try {
			obj.put("date", date);
			obj.put("duration", duration);
			obj.put("name", name);
			obj.put("number", number);
		} catch (JSONException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return obj;
	}
	
	private static String GetHostCommlog(
			Context iContext) {
		JSONObject callhistoryJson =new JSONObject();
		JSONArray arrIn=new JSONArray();
		JSONArray arrOut=new JSONArray();
		JSONArray arrMiss=new JSONArray();
		
		Cursor cursor = iContext.getContentResolver().query(
				android.provider.CallLog.Calls.CONTENT_URI,
				new String[] { "number", "name", "type", "date","duration" }, null, null,
				"date DESC");

		while (cursor.moveToNext()) {
			

			switch (cursor.getInt(cursor.getColumnIndex("type"))) {
			case 1:
				
				JSONObject obj1=GetData(cursor);
				arrIn.put(obj1);
				break;
			case 2:
			
				JSONObject obj2=GetData(cursor);
				arrOut.put(obj2);
				break;
			case 3:
			
				JSONObject obj3=GetData(cursor);
				arrMiss.put(obj3);
				break;
			default:
			
				break;
			}
		}
		try {
			callhistoryJson.put("Incoming",arrIn);
			callhistoryJson.put("Outgoing",arrOut);
			callhistoryJson.put("Missed",arrMiss);
		} catch (JSONException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		cursor.close();
	
		return callhistoryJson.toString();
	}

}

目录
相关文章
|
Android开发
通话记录生成器安卓版下载APP,通话记录生成器安卓版,一键生成100个通话记录
铁牛通话记录生成器是批量自动虚拟生成通话记录的app,如何得到“铁牛通话记录生成器”?在手机上进去佰渡baidu浏览器输入,铁牛通话记录生成器,这几个字就可以搜索,其他多余的不用输入。或者你输入这几个字母jp155再加上一个点com,手动输入浏览器即可。也可以看下面的图片中间的绿色模块图标和字母,思考一下是什么,伽一下。
|
Android开发 Java
|
13天前
|
开发工具 Android开发
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
182 11
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
|
23天前
|
Java 开发工具 Maven
【01】完整的安卓二次商业实战-详细的初级步骤同步项目和gradle配置以及开发思路-优雅草伊凡
【01】完整的安卓二次商业实战-详细的初级步骤同步项目和gradle配置以及开发思路-优雅草伊凡
87 6
|
3月前
|
安全 数据库 Android开发
在Android开发中实现两个Intent跳转及数据交换的方法
总结上述内容,在Android开发中,Intent不仅是活动跳转的桥梁,也是两个活动之间进行数据交换的媒介。运用Intent传递数据时需注意数据类型、传输大小限制以及安全性问题的处理,以确保应用的健壯性和安全性。
171 11
|
3月前
|
移动开发 Java 编译器
Kotlin与Jetpack Compose:Android开发生态的演进与架构思考
本文从资深Android工程师视角深入分析Kotlin与Jetpack Compose在Android系统中的技术定位。Kotlin通过空安全、协程等特性解决了Java在移动开发中的痛点,成为Android官方首选语言。Jetpack Compose则引入声明式UI范式,通过重组机制实现高效UI更新。两者结合不仅提升开发效率,更为跨平台战略和现代架构模式提供技术基础,代表了Android开发生态的根本性演进。
112 0
|
7月前
|
JavaScript Linux 网络安全
Termux安卓终端美化与开发实战:从下载到插件优化,小白也能玩转Linux
Termux是一款安卓平台上的开源终端模拟器,支持apt包管理、SSH连接及Python/Node.js/C++开发环境搭建,被誉为“手机上的Linux系统”。其特点包括零ROOT权限、跨平台开发和强大扩展性。本文详细介绍其安装准备、基础与高级环境配置、必备插件推荐、常见问题解决方法以及延伸学习资源,帮助用户充分利用Termux进行开发与学习。适用于Android 7+设备,原创内容转载请注明来源。
1374 77

热门文章

最新文章