打开本机电话簿作为意图并用于搜索。可能?

时间:2013-07-26 10:26:47

标签: android android-intent

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

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

所有与此相关的常见事情。

我的问题是:

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

2 个答案:

答案 0 :(得分: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/ 对于这一点的作者来说,这是值得信赖的。

答案 1 :(得分:1)

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

Intent intent = new Intent( Intent.ACTION_VIEW, Uri.parse( "sms:" + phoneNumber ) );
intent.putExtra( "sms_body", smsBody );
context.startActivity( intent );