我正在创建一个Android应用程序。我正在ListView中创建一个ListView我正在显示联系人列表中的联系人,它正在完美地工作。但每当我运行我的应用程序与其他设备我的应用程序崩溃。问题是,在该设备上,他们将联系人的谷歌帐户显示在联系人列表中。然后我如何从谷歌,Facebook,Twitter,手机内存和我的SIM卡等所有帐户获取联系人姓名和号码。这是我到目前为止所做的代码,仅显示来自手机内存的联系人。这是我的代码。
export NODE_PATH=${HOME}/node_modules
适配器类就在这里。
class LoadContact extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected Void doInBackground(Void... voids) {
// Get Contact list from Phone
if (phones != null) {
Log.e("count", "" + phones.getCount());
if (phones.getCount() == 0) {
Toast.makeText(ReferFriend.this, "No contacts in your contact list.", Toast.LENGTH_LONG).show();
}
while (phones.moveToNext()) {
String name = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
SelectUser selectUser = new SelectUser();
selectUser.setContactName(name);
selectUser.setPhone(phoneNumber);
selectUser.setCheckedBox(false);
//add valid object to arraylist
selectUsers.add(selectUser);
}
} else {
Log.e("Cursor close 1", "----------------");
}
//phones.close();
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
adapter = new SelectUserAdapter(ReferFriend.this, selectUsers);
listView.setAdapter(adapter);
listView.setFastScrollEnabled(true);
}
}
请帮忙解决这个问题。谢谢。