Я хочу отобразить список имен контактов из входящих и исходящих сообщений SMS (например, в приложении для обмена сообщениями). Я придумал следующий код:NullPointerException при работе на телефоне (но не на эмуляторе)
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
Uri messagesUri = Uri.parse("content://sms/");
Cursor cursor = getContentResolver().query(messagesUri,new String[] { "_id", "thread_id", "address", "person", "date", "body", "type" }, null, null, null);
startManagingCursor(cursor);
String[] columns = new String[] { "address", "person", "date", "body", "type" };
String sms = "";
if (cursor.getCount() > 0) {
while (cursor.moveToNext()){
String address = cursor.getString(cursor.getColumnIndex(columns[0]));
sms += address + " ";
String contact=address;
Uri uri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(address));
Cursor cs= getContentResolver().query(uri, new String[]{PhoneLookup.DISPLAY_NAME},PhoneLookup.NUMBER+"='"+address+"'",null,null);
startManagingCursor(cs);
if(cs.getCount()>0)
{
cs.moveToFirst();
contact=cs.getString(cs.getColumnIndex(PhoneLookup.DISPLAY_NAME));
}
listItems.add(contact);
}
}
adapter=new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1,
listItems);
setListAdapter(adapter);
}
Это работает, когда я запустить приложение в эмуляторе, но когда я пытаюсь запустить его на телефоне я получаю NullPointerException. Если я дважды щелкните на сообщении об ошибке в LogCat следующая строка подсвечивается:
if(cs.getCount()>0)
Что здесь проблема?
Проверьте 'cs' сам по себе является действительным? – Mahesh
Как мне это сделать? – user1301428