Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 我希望该代码可以在我的任何应用程序中使用我的电话簿联系人_Android - Fatal编程技术网

Android 我希望该代码可以在我的任何应用程序中使用我的电话簿联系人

Android 我希望该代码可以在我的任何应用程序中使用我的电话簿联系人,android,Android,我想在我的任何应用程序中使用我的电话簿联系人代码意味着我想将代码添加到我的电话簿联系人数据中,以便我可以从中选择任何联系人,并使用该联系人中存储的号码和其他详细信息试试这个家伙:)祝你好运 这是课程代码 public class ReadContacts extends AsyncTask<Void, Void, Void>{ private ListView contactsList; private Context cntx;

我想在我的任何应用程序中使用我的电话簿联系人代码意味着我想将代码添加到我的电话簿联系人数据中,以便我可以从中选择任何联系人,并使用该联系人中存储的号码和其他详细信息

试试这个家伙:)祝你好运

这是课程代码

 public class ReadContacts extends AsyncTask<Void, Void, Void>{
        private ListView contactsList;

        private Context cntx;
        private Constant constants;

        static final String[] CONTACTS_SUMMARY_PROJECTION = new String[] {
            Contacts._ID, // 0
            Contacts.DISPLAY_NAME, // 1
            Contacts.STARRED, // 2
            Contacts.TIMES_CONTACTED, // 3
            Contacts.CONTACT_PRESENCE, // 4
            Contacts.PHOTO_ID, // 5
            Contacts.LOOKUP_KEY, // 6
            Contacts.HAS_PHONE_NUMBER, // 7
        };

        private long contactId;
        private String display_name;
        private String phoneNumber;

        private ArrayList<ContactsWrapper>contactWrap = new ArrayList<ContactsWrapper>();
        private HashMap<Long, ArrayList<ContactsWrapper>>map = new HashMap<Long, ArrayList<ContactsWrapper>>();

        private ContactsAdapter adapter;

        private DataController controller;

        public ReadContacts(Context cntx, ListView contactList) {
            // TODO Auto-generated constructor stub
            this.cntx = cntx;
            constants = new Constant();
            this.contactsList = contactList;

            controller = DataController.getInstance(); 
        }

        @Override
        protected void onPreExecute() {
            // TODO Auto-generated method stub
            super.onPreExecute();
            if(!(controller.contactWrapper.size()>0))
                 constants.displayProgressDialog(cntx, "Loading Contacts...", "Please Wait");
        }

        @Override
        protected Void doInBackground(Void... params) {
            // TODO Auto-generated method stub

            if(!(controller.contactWrapper.size()>0))
            {
            try {
                String select = "((" + Contacts.DISPLAY_NAME + " NOTNULL) AND ("
                        + Contacts.HAS_PHONE_NUMBER + "=1) AND ("
                        + Contacts.DISPLAY_NAME + " != '' ))";

                Cursor c = cntx.getContentResolver().query(Contacts.CONTENT_URI, CONTACTS_SUMMARY_PROJECTION, select,
                        null, Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC");

                int colorcounter = 0;
                String[] colorcounter_array = { "#91A46B", "#8BB6B5", "#CAA973", "#8DA6C8","#D19B8D"};

                int color_string;
                for(int i=0;i<c.getCount();i++)
                {
    //              contactWrap.clear();
                    try {
                        contactId = 0;
                        String hasPhone = "";
                        display_name = "";
                        phoneNumber = "";

                        c.moveToPosition(i);

                        contactId =  c.getLong(0);
                        display_name = c.getString(1);
                        hasPhone = c.getString(7);

                        if (hasPhone.equalsIgnoreCase("1"))
                            hasPhone = "true";
                        else
                            hasPhone = "false" ;

                        if (Boolean.parseBoolean(hasPhone)) 
                        {
                            Cursor phones = cntx.getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ contactId,null, null);
                            while (phones.moveToNext()) 
                            {
                                int indexPhoneType = phones.getColumnIndexOrThrow(Phone.TYPE);
                                String phoneType =  phones.getString(indexPhoneType);

                                phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 

                                String lookupKey = phones.getString(phones.getColumnIndex(ContactsContract.Contacts.LOOKUP_KEY));

                                if (colorcounter < 5) 
                                {
                                    color_string =Color.parseColor(colorcounter_array[colorcounter]);
                                    colorcounter++;
                                } else {
                                    colorcounter = 0;
                                    color_string =Color.parseColor(colorcounter_array[colorcounter]);
                                    colorcounter++;
                                }
                                contactWrap.add(new ContactsWrapper(contactId, display_name, phoneNumber,lookupKey,false,color_string));
                            }
    //                      map.put(contactId, new ArrayList<ContactsWrapper>(contactWrap));
                            phones.close();
                        }
                    } catch (Exception e) {

                        e.printStackTrace();
                    }  
                }
                controller.contactWrapper = contactWrap;
            }
            catch (Exception e) {
                // TODO: handle exception
                e.printStackTrace();
            }
            }

            return null;
        }

        @Override
        protected void onPostExecute(Void result) {
            // TODO Auto-generated method stub
            super.onPostExecute(result);
            constants.dismissDialog();

            adapter = new ContactsAdapter(cntx);
            contactsList.setAdapter(adapter);
        }

    }

您可以在应用程序中使用
联系人
应用程序的
内容提供商
。 通过

 public class ContactsWrapper {

    private long contactId;
    private String displayName,displayNumber,lookUp;
    public boolean checked = true;
    int color_string;

    public ContactsWrapper(long contactId, String displayName, String displayNumber, String lookUp, boolean checked,int color_string) {
        // TODO Auto-generated constructor stub
        this.contactId = contactId;
        this.displayName = displayName;
        this.displayNumber = displayNumber;
        this.lookUp = lookUp;
        this.checked = checked;
        this.color_string =color_string;
    }

    public String getLookUp() {
        return lookUp;
    }

    public int getColor_string() {
        return color_string;
    }

    public boolean isChecked() {
        return checked;
    }

    public long getContactId() {
        return contactId;
    }

    public String getDisplayName() {
        return displayName;
    }

    public String getDisplayNumber() {
        return displayNumber;
    }

    public void setChecked(boolean checked) {
        this.checked = checked;
    }
    }