連絡先を取得して JSONArray に入れて、すべてをサーバーにアップロードします。それらを抽出するとLog.i();
、連絡先が正しく表示されます。しかし、JSON 配列に同じ値を入れると、null と表示されます。
コードは次のとおりです。
public void phoneandname(Context c) {
if (cc.isOnline(c) == true) {
db = new Database(c);
Cursor phones = c.getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
null, null, null);
JSONArray jarray = new JSONArray();
db.open();
while (phones.moveToNext()) {
String name = phones
.getString(phones
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
String phoneNumber = phones
.getString(phones
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
JSONObject json = new JSONObject();
try {
json.put("name", name);
json.put("phone", phoneNumber);
json.put("type", "insert");
jarray.put(json);
} catch (JSONException e) {
e.printStackTrace();
}
}
ArrayList<NameValuePair> nvp = new ArrayList<NameValuePair>();
DBupload upload = new DBupload();
DatosRegistro dr = new DatosRegistro(c);
nvp.add(new BasicNameValuePair("content", String.valueOf(jarray)));
nvp.add(new BasicNameValuePair("token", dr.hash_final(
dr.token_secret(dr.mail(), "mail"), jarray.toString())));
nvp.add(new BasicNameValuePair("id", String.valueOf(dr
.return_id_phone())));
JSONObject json2 = upload.UploaData(nvp,
"http://anonyme.mariomontes.es/contacts/insert");
try {
if (json2.getInt("error") == 1) {
} else {
db.contact_table(name, phoneNumber);
}
} catch (JSONException e) {
e.printStackTrace();
}
db.close();
Log.i("********", jarray.toString());
phones.close();
}
}
ご覧のように。値を表示してから、サーバーにアップロードします。しかし、コンテンツ(配列)がnullであり、わかりません。