为什么总是拨打第一个号码..!

时间:2011-05-23 11:15:34

标签: android

我正在编写搜索联系人和拨打电话的代码。我的代码可以列出联系人姓名并选择特定联系人。但是当我拨打所选择的联系人时,它会说出所选的姓名,但拨打联系人列表中的第一个名字。任何人都可以通过从联系人列表中选择姓名来帮助我编写呼叫特定号码的代码。 提前谢谢。

这是我用来搜索特定联系号码的代码。但是选择第一个数字。

 private void populateContacts()
 { 

   ContentResolver cr = getContentResolver(); 

   Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null,  null, null, null); 

   if (cur.getCount() > 0) { 

   while (cur.moveToNext())
   { 

       // ID AND NAME FROM CONTACTS CONTRACTS 
        id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID)); 

        // GET PHONE NUMBERS WITH QUERY STRING 
      if (Integer.parseInt(cur .getString(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) { 

        Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID 
                       + " = ?", new String[] { id }, null); 

         // WHILE WE HAVE CURSOR GET THE PHONE NUMERS 
        while (pCur.moveToNext())
         { 

              name = cur .getString(cur .getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));    

             Log.i("jni", "ID :" + id); 
             Log.i("jni", "NAME :" + name); 

                 // Do something with phones 
                 //int phoneColumn = pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DATA);
                 //      number =pCur.getString(phoneColumn);

            phone = pCur.getString(pCur .getColumnIndex(ContactsContract.CommonDataKinds.Phone.DATA)); 

           Contacts.add( name+ phone  );
         }

  } 
    //      pCur.close(); 

 } 

1 个答案:

答案 0 :(得分:0)

您应该指定更多信息,以便我们为您提供帮助。但

您应该使用人员内容提供商 android.provider.Contacts.Phones.CONTENT_URI 。 查看此信息http://developer.android.com/guide/topics/providers/content-providers.html,您将能够知道如何操作;)

有关使用联系人内容提供商的内容提供商的解释,您将看到他们如何过滤特定联系人并获取他们的信息