Я хочу отобразить список контактов, поэтому я разрабатываю этот код:
private void ListContact() {
// instance qui permet d'accéder au contenu d'autre application
ContentResolver ConnectApp = this.getContentResolver();
Uri uri = Contacts.People.CONTENT_URI;
String[] projection = new String[] {People.NAME, People.NUMBER, People._ID };
// on récupère les contacts dans un curseur
Cursor cur = ConnectApp.query(uri, projection, null, null, null);
//this.startManagingCursor(cur);
if (cur.moveToFirst()) {
do {
String name = cur.getString(cur.getColumnIndex(People.NAME));
String num = cur.getString(cur.getColumnIndex(People.NUMBER));
String id = cur.getString(cur.getColumnIndex(Contacts.People._ID));
Log.i("contacts", " name: "+name+" num: "+num+" id: "+id);
} while (cur.moveToNext());
}
}
Но в logcat возвращается num: NULL Для сообщений, которые я разрабатываю этот код:
public void read () {
Uri mSmsinboxQueryUri = Uri.parse("content://sms");
Cursor cursor1 = getContentResolver().query(
mSmsinboxQueryUri,
new String[] { "_id", "thread_id", "address", "person", "date",
"body", "type" }, null, null, null);
//context.getContentResolver().startManagingCursor(cursor1);
String[] columns = new String[] { "address", "person", "date", "body",
"type" };
if (cursor1.getCount() > 0) {
String count = Integer.toString(cursor1.getCount());
Log.e("Count",count);
while (cursor1.moveToNext()) {
String address = cursor1.getString(cursor1
.getColumnIndex(columns[0]));
String name = cursor1.getString(cursor1
.getColumnIndex(columns[1]));
String date = cursor1.getString(cursor1
.getColumnIndex(columns[2]));
String msg = cursor1.getString(cursor1
.getColumnIndex(columns[3]));
String type = cursor1.getString(cursor1
.getColumnIndex(columns[4]));
// if (type=="1"){type="received";} else {type="sent";}
Log.i("msg","msg: "+ msg + " address: "+address+ " name: "+name+ " date: "+date+ " type: "+type);
}
}
}
У меня в этом случае имя: NULL и неправильный формат даты