使用Android联系人的最佳方式是什么?

时间:2017-02-04 06:28:28

标签: android

我正在创建一个Android APP,它将使用已在手机上注册的联系人,但注册了多个联系人的人可能会导致APP失去性能。所以我来询问如何最好地获取所有已注册联系人的姓名,ID和电话号码,然后将其保存到数据库中。这将是运行应用程序的第一步。

过了一段时间,有必要进行比较以检查更新或删除。我想知道如何最好地做到这一点。

APP将与Whatsapp类似,但它不是聊天应用程序。

如果您知道有关WhatsApp如何完成或创建WhatsApp模板的教程,它也会对我有所帮助,因为我可以提出一些问题,因为我会尝试使用与WhatsApp相同的方式使用现有联系人。< / p>

谢谢。

1 个答案:

答案 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);


    }


}