4

作为话题。我研究了一整天,知道我可以使用本地电话簿添加联系人,通过本地短信应用程序发送短信。

但是我找不到任何方法来使用本机电话簿搜索联系人。我尝试使用文档:http: //developer.android.com/reference/android/provider/ContactsContract.Intents.html#SEARCH_SUGGESTION_CLICKED

以及与此相关的所有常见事物。

我的问题是:

是否可以使用本机电话簿搜索联系人并检索他们?如果是这样,非常感谢示例。

4

2 回答 2

3

感谢我的朋友在 stackoverflow 上将相同的问题链接到我,我找到了解决问题的方法。

基本上要通过使用供应商电话簿搜索应用程序获得联系,我们必须开始意图以开始我们的搜索之旅。

我在一个按钮中使用它,该按钮在单击按钮时调用此方法。

public void showContactsChooser(final View view){
   Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
   startActivityForResult(intent, PICK_CONTACT);
}

我们现在得到一个屏幕,显示我们拥有的所有联系人。我们选择一个,然后我们回到我们的应用程序。

要阅读此联系人,我使用此方法:

    @Override
    public void onActivityResult(int reqCode, int resultCode, Intent data){
        super.onActivityResult(reqCode, resultCode, data);

        switch(reqCode){
           case (PICK_CONTACT):
             if (resultCode == Activity.RESULT_OK){
                 Uri contactData = data.getData();
                 Cursor c = getContentResolver().query(contactData, null, null, null, null);

                 if (c.moveToFirst()){
String name = c.getString(c.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME));
                 Toast.makeText(getApplicationContext(), name, Toast.LENGTH_SHORT).show();
                 }
             }
        }
    }

并做了 :)

我的知识来自http://eclipsed4utoo.com/blog/android-open-contacts-activity-return-chosen-contact/ 而这一切都归功于作者。

于 2013-07-29T09:38:42.953 回答
1

如果您想在电话通讯录中搜索某些内容,您必须READ_CONTACTS在您的AndroidManifest.xml. 那里有说明如何从电话数据库中获取联系人。获取有趣的电话号码并使用该代码在默认应用程序中发送您的消息(您不需要SEND_SMS权限。但请记住,用户必须通过单击“发送”来接受该消息):

Intent intent = new Intent( Intent.ACTION_VIEW, Uri.parse( "sms:" + phoneNumber ) );
intent.putExtra( "sms_body", smsBody );
context.startActivity( intent );
于 2013-07-26T10:32:31.747 回答