我想創建一個JSON格式爲我的通話記錄細節,如下面的,它在android系統發送到服務器:創建的Android JSON數據通話記錄
{「Calllogs」:{
「 logdata 「:[
{ 」ID「:」 9791" , 「號」: 「+ 919122185954」, 「持續時間」: 「0」, 「類型」: 「3」, 「日期」 :「1425887846182」, 「name」:「ww」} , {
「ID」: 「9790」, 「號」: 「+ 91712222777」, 「持續時間」: 「32」, 「類型」: 「1」, 「日期」: 「1425880324221」, 「名」:「Dpika」} : : : :
]}}
但是當我使用下面的代碼來獲取JSON格式的所有通話記錄的詳細信息,並將其發送到服務器,我得到一個非常不尋常的錯誤,就像我發送30個聯繫人時它工作正常,但是當我獲取比我更多的g設置一個錯誤?
CODE:
public void GetCallLogs()
{
JSONObject main= new JSONObject();
JSONObject calllogs = new JSONObject();
JSONArray logs = new JSONArray();
Cursor cur = getContentResolver().query(Uri.parse("content://call_log/calls"),null, null, null, "_ID DESC");
cur.moveToFirst();
int nameColumn = cur.getColumnIndex(CallLog.Calls.CACHED_NAME);
int numberColumn = cur.getColumnIndex(CallLog.Calls.NUMBER);
int dateColumn = cur.getColumnIndex(CallLog.Calls.DATE);
int duretion = cur.getColumnIndex(CallLog.Calls.DURATION);
int type = cur.getColumnIndex(CallLog.Calls.TYPE);
int id = cur.getColumnIndex(CallLog.Calls._ID);
int i=0;
JSONObject studenti = new JSONObject();
while (!cur.isAfterLast() && i < 50) {
String name = cur.getString(nameColumn);
String number = cur.getString(numberColumn);
String date = cur.getString(dateColumn);
String duration = cur.getString(duretion);
String types = cur.getString(type);
String ids = cur.getString(id);
try {
studenti.put("id", ids);
studenti.put("name",name);
studenti.put("date", date);
studenti.put("duration", duration);
studenti.put("types", types);
studenti.put("number", number);
Log.d("HERE IN FETCHCALL", "name"+name);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
logs.put(studenti);
studenti = new JSONObject();
cur.moveToNext();
i++;
}
try {
calllogs.put("logdata", logs);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
main.put("Calllogs", calllogs);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
首先更新您的文章並描述問題。現在您只添加了代碼 – 2015-03-08 21:34:28