【问题标题】:How to import contacts from phonebook to our application如何将通讯录中的联系人导入我们的应用程序
【发布时间】:2011-04-14 11:24:03
【问题描述】:

我正在开发android应用程序,当用户点击按钮时,它应该在表格中显示电话簿中的所有联系人。我怎样才能实现它,任何人都可以帮助我。提前谢谢

【问题讨论】:

    标签: android


    【解决方案1】:

    如果您查询ContactsContract.Contacts 内容提供商,您将获得带有联系人列表的光标。

    【讨论】:

      【解决方案2】:
                  Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
                  intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
                  startActivityForResult(intent, 1);
      

      在button.setOnClick函数下使用这段代码你会得到电话簿中所有联系人的显示

      【讨论】:

      • 这个意图的委托方法在哪里?
      【解决方案3】:

      给你一些代码:

           ContentResolver cr = getContentResolver();
          Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
          while(cursor.moveToNext()){
          //get name
          int nameFiledColumnIndex = cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME);
          String contact = cursor.getString(nameFiledColumnIndex);
      
          String[] PHONES_PROJECTION = new String[] { "_id","display_name","data1","data3"};//
          String contactId = cursor.getString(cursor.getColumnIndex(PhoneLookup._ID));
          Cursor phone = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, PHONES_PROJECTION,
          ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + contactId, null, null);
          //name type ..
          while(phone.moveToNext()) {
              int i = phone.getInt(0);
              String str = phone.getString(1);
              str = phone.getString(2);
              str = phone.getString(3);
              }
              phone.close();
              //addr
              Cursor addrCur = cr.query(ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_URI ,
           new String[]{"_id","data1","data2","data3"}, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + contactId , null, null);
              while(addrCur.moveToNext()) {
              int i = addrCur.getInt(0);
              String str = addrCur.getString(1);
              str = addrCur.getString(2);
              str = addrCur.getString(3);
              }
              addrCur.close();
      
              //email
              Cursor emailCur = cr.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI ,
           new String[]{"_id","data1","data2","data3"}, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + contactId , null, null);
              while(emailCur.moveToNext()) {
              int i = emailCur.getInt(0);
              String str = emailCur.getString(1);
              str = emailCur.getString(2);
              str = emailCur.getString(3);
              }
              emailCur.close();
      
          }
          cursor.close();
      

      【讨论】:

        【解决方案4】:

        您可以在 button.setonclicklistener 中使用此代码。

        Intent intent = new Intent(Intent.ACTION_PICK,ContactsContract.Contacts.CONTENT_URI); startActivityForResult(intent, PICK_CONTACT);

        【讨论】:

          猜你喜欢
          • 2011-11-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多