我使用此处的说明编写了一个短信发送应用程序。现在我想在根据保存在电话簿中的号码键入号码或姓名时添加电话号码建议,例如当我们输入号码呼叫它时建议一个号码(在键入时动态)。
有没有可能做或不做?如果可能的话,我该怎么做?我使用了 API 级别 2.2。
编辑:我已经在 Question Here的帮助下做到了这一点,但是当我点击电话簿中的姓名时,它会将姓名放在文本框中,但我需要发送短信的号码。
问题:我怎样才能得到号码,以便我可以向所选名称发送消息。
是的,有可能。您可以使用ContactsContract更改获取手机中的现有号码,将您的电话号码 EditText 更改为AutoCompleteTextView,并使用SimpleCursorAdapter将联系人中的号码绑定到 AutoCompleteTextView。
另外
如果您想将联系人姓名转换为电话号码,您可以在“提交”按钮的onClick()
方法中尝试:
Cursor cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
new String[] { ContactsContract.CommonDataKinds.Phone.NUMBER },
ContactsContract.Contacts.DISPLAY_NAME + " = '" + autoComplete.getText() + "'",
null, null);
if(cursor.moveToFirst())
phoneNo = cursor.getString(0);
了解这只会从第一个联系人中获取与您的 AutoCompleteTextView 中的名称匹配的第一个号码。您必须辨别一种方法来区分具有相同姓名的联系人和具有多个号码的联系人。