首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >GetAndroid联系信息(电话、姓名等)

GetAndroid联系信息(电话、姓名等)
EN

Stack Overflow用户
提问于 2012-04-24 08:04:39
回答 1查看 267关注 0票数 0

我知道你可能认为这个话题已经讨论过好几次了,但这一次不同!

我的应用程序应该从选择的联系人中获取联系人信息(姓名、号码),但我只获取了姓名,无法获取号码。

代码语言:javascript
运行
复制
@Override
public void onClick(View v) {
   // Opening Contacts Window as a Window
   Intent contactPickerIntent = new Intent(Intent.ACTION_PICK, 
                                     ContactsContract.Contacts.CONTENT_URI);  
       // calling OnActivityResult with intent And Some contact for Identifie
   startActivityForResult(contactPickerIntent, PICK);  
}

@Override
public void onActivityResult(int reqCode, int resultCode, Intent data) {
  super.onActivityResult(reqCode, resultCode, data);
  switch (reqCode) {
    case (PICK) :
      if (resultCode == Activity.RESULT_OK) {
         Uri contactData = data.getData(); 
         Cursor c =  managedQuery(contactData, null, null, null, null);
         if (c.moveToFirst()) {

            int indexName = c.getColumnIndex(
                        ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME);
            int indexNumber = c.getColumnIndex(
                        ContactsContract.CommonDataKinds.Phone.NUMBER);
            nom   = c.getString(indexName);
            numero = c.getString(indexNumber);


           //Visual confirm
           Toast.makeText(this, "Contact " + nom +" enregistré!",
                          Toast.LENGTH_LONG).show();

           //Save in prefs:
           SharedPreferences manager = 
                         PreferenceManager.getDefaultSharedPreferences(this);
           Editor editor = manager.edit();
           editor.putString("num", numero);             
           editor.putString("nom", nom);
           editor.commit();

名称是正确的,但数字会导致强制关闭。

但如果我将其替换为下面的代码,将不再有强制关闭,但数字仍然不正确(0或1)。

代码语言:javascript
运行
复制
int indexNumber = c.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)+1;

我该怎么办?

EN

回答 1

Stack Overflow用户

发布于 2012-04-24 11:14:16

代码语言:javascript
运行
复制
private void getDetails(){
        Uri uri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;
        ContentResolver cr = getContentResolver();
        Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,null, null, null, null);
        String[] projection    = new String[] {ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,
                        ContactsContract.CommonDataKinds.Phone.NUMBER };
        Cursor names = getContentResolver().query(uri, projection, null, null, null);

        int indexName = names.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME);
        int indexNumber = names.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
        names.moveToFirst();
        do {

            String name   = names.getString(indexName);
            Log.e("Name new:", name);
            String number = names.getString(indexNumber);
            Log.e("Number new:","::"+number);

        } while (names.moveToNext());
    }

上面返回了您的联系人数据库中的所有姓名和号码。

代码语言:javascript
运行
复制
while (cur.moveToNext()) {
            String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
            Cursor email = cr.query( 
                    ContactsContract.CommonDataKinds.Email.CONTENT_URI, null,
                    ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = ?", 
                            new String[]{id}, null); 
            while (email.moveToNext()) { 
                //to get the contact names
                // if the email addresses were stored in an array
                String emailid = email.getString(email.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
                Log.e("Email id ::", emailid);
                String emailType = email.getString(email.getColumnIndex(ContactsContract.CommonDataKinds.Email.TYPE)); 
                Log.e("Email Type ::", emailType);

            } 
            email.close();
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10290010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档