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

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值