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获取通话记录)