作为主题。我整天都在研究,知道我知道我可以使用原生电话簿添加联系人,通过本地短信应用程序发送短信。
但是我找不到任何方法来使用原生电话簿来搜索联系人。我尝试使用文档: http://developer.android.com/reference/android/provider/ContactsContract.Intents.html#SEARCH_SUGGESTION_CLICKED
所有与此相关的常见事情。
我的问题是:
是否可以使用本机电话簿搜索联系人并检索联系人? 如果是这样,举例非常感谢。
答案 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 );