我正在创建一个Android APP,它将使用已在手机上注册的联系人,但注册了多个联系人的人可能会导致APP失去性能。所以我来询问如何最好地获取所有已注册联系人的姓名,ID和电话号码,然后将其保存到数据库中。这将是运行应用程序的第一步。
过了一段时间,有必要进行比较以检查更新或删除。我想知道如何最好地做到这一点。
APP将与Whatsapp类似,但它不是聊天应用程序。
如果您知道有关WhatsApp如何完成或创建WhatsApp模板的教程,它也会对我有所帮助,因为我可以提出一些问题,因为我会尝试使用与WhatsApp相同的方式使用现有联系人。< / p>
谢谢。
答案 0 :(得分:0)
以下代码是获取手机联系人..
class LoadContactsAyscn extends AsyncTask<Void, Void, ArrayList<AllContact>> {
ProgressDialog pd;
ArrayList<AllContact> contacts;
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
pd = ProgressDialog.show(getActivity(), "Loading Contacts",
"Please Wait");
}
@Override
protected ArrayList<AllContact> doInBackground(Void... params) {
// TODO Auto-generated method stub
ArrayList<AllContact> contacts = new ArrayList<AllContact>();
Cursor c = getActivity().getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
null, null, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " ASC");
while (c.moveToNext()) {
String contactName = c.getString(c.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
String phNumber = c.getString(c.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
AllContact allcontacts = new AllContact();
allcontacts.setName(contactName);
allcontacts.setNumber(phNumber);
contacts.add(allcontacts);
}
c.close();
return contacts;
}
@Override
protected void onPostExecute(ArrayList<AllContact> contacts) {
// TODO Auto-generated method stub
super.onPostExecute(contacts);
pd.cancel();
adapter = new MyCustomAdapter(getActivity(), R.layout.select_text_layout, contacts);
list.setAdapter(adapter);
}
}