在Android中按名称搜索联系人的电话号码

时间:2011-11-26 16:07:48

标签: android

我已成功在Android中实施搜索,以通过语音识别查找联系人姓名。现在我想通过语音识别找到号码。

我已经尝试了这个How to call Android contacts list?,但它不能用于我的SGS2。我认为来源是旧版本。这就是为什么它不起作用。

如何在Android联系人中找到由语音识别产生的姓名号码?

1 个答案:

答案 0 :(得分:2)

    private void getContactData() {
        Cursor phoneCursor = null;
        contactList = new HashMap<String,String>();

      try{
             // 주소록이 저장된 URI
           Uri uContactsUri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;

          // 주소록의 이름과 전화번호의 열 이름
          String strProjection = ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME;

          // 주소록을 얻기 위한 쿼리문을 날리고 커서를 리턴
          phoneCursor = getContentResolver().query(uContactsUri, null, null, null, strProjection);
          phoneCursor.moveToFirst();

          String name = "";
          String phoneNumber = "";

           // 주소록의 이름
           int nameColumn = phoneCursor.getColumnIndex(Phone.DISPLAY_NAME);
           // 주소록의 전화번호
           int phoneColumn = phoneCursor.getColumnIndex(Phone.NUMBER);

           while(!phoneCursor.isAfterLast()){
               name = phoneCursor.getString(nameColumn);
               phoneNumber = phoneCursor.getString(phoneColumn);

               // HashMap에 data 넣음 
               contactList.put(name, phoneNumber);
               phoneCursor.moveToNext();
            }
        }
        catch(Exception e){
            Log.e("[SmsMain] getContactData", e.toString());
        }
        finally{
           if(phoneCursor != null){
              phoneCursor.close();
              phoneCursor = null;
           }
        }
    }

这是获取联系人数据库的来源。

我通过搜索解决了。