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();
	}

}

目录
相关文章
|
11月前
|
Android开发
通话记录生成器安卓版下载APP,通话记录生成器安卓版,一键生成100个通话记录
铁牛通话记录生成器是批量自动虚拟生成通话记录的app,如何得到“铁牛通话记录生成器”?在手机上进去佰渡baidu浏览器输入,铁牛通话记录生成器,这几个字就可以搜索,其他多余的不用输入。或者你输入这几个字母jp155再加上一个点com,手动输入浏览器即可。也可以看下面的图片中间的绿色模块图标和字母,思考一下是什么,伽一下。
|
Android开发 Java
|
2天前
|
Linux 编译器 Android开发
FFmpeg开发笔记(九)Linux交叉编译Android的x265库
在Linux环境下,本文指导如何交叉编译x265的so库以适应Android。首先,需安装cmake和下载android-ndk-r21e。接着,下载x265源码,修改crosscompile.cmake的编译器设置。配置x265源码,使用指定的NDK路径,并在配置界面修改相关选项。随后,修改编译规则,编译并安装x265,调整pc描述文件并更新PKG_CONFIG_PATH。最后,修改FFmpeg配置脚本启用x265支持,编译安装FFmpeg,将生成的so文件导入Android工程,调整gradle配置以确保顺利运行。
22 1
FFmpeg开发笔记(九)Linux交叉编译Android的x265库
|
25天前
|
Java Android开发
Android 开发获取通知栏权限时会出现两个应用图标
Android 开发获取通知栏权限时会出现两个应用图标
12 0
|
1月前
|
XML 缓存 Android开发
Android开发,使用kotlin学习多媒体功能(详细)
Android开发,使用kotlin学习多媒体功能(详细)
101 0
|
1月前
|
设计模式 人工智能 开发工具
安卓应用开发:构建未来移动体验
【2月更文挑战第17天】 随着智能手机的普及和移动互联网技术的不断进步,安卓应用开发已成为一个热门领域。本文将深入探讨安卓平台的应用开发流程、关键技术以及未来发展趋势。通过分析安卓系统的架构、开发工具和框架,本文旨在为开发者提供全面的技术指导,帮助他们构建高效、创新的移动应用,以满足不断变化的市场需求。
18 1
|
16天前
|
XML 开发工具 Android开发
构建高效的安卓应用:使用Jetpack Compose优化UI开发
【4月更文挑战第7天】 随着Android开发不断进化,开发者面临着提高应用性能与简化UI构建流程的双重挑战。本文将探讨如何使用Jetpack Compose这一现代UI工具包来优化安卓应用的开发流程,并提升用户界面的流畅性与一致性。通过介绍Jetpack Compose的核心概念、与传统方法的区别以及实际集成步骤,我们旨在提供一种高效且可靠的解决方案,以帮助开发者构建响应迅速且用户体验优良的安卓应用。