2

我正在设计一个需要通过搜索打开联系人应用程序的应用程序。我正在使用代码:

Intent intent = new Intent(Intent.ACTION_SEARCH);
intent.putExtra(SearchManager.QUERY, name); 
startActivity(intent);

我遇到的问题是这会打开应用程序选择器并显示大约 40 个应用程序供用户选择,这可能会造成混淆。有没有办法自动将联系人应用程序设置为默认值,甚至最小化列表?

我试过使用命令:

intent.setData(ContactsContract.Contacts.CONTENT_URI);

这似乎适用于其他类型的联系人相关活动,例如 ACTION_VIEW,但是当我将它添加到 ACTION_SEARCH 意图时,应用程序只会崩溃。

谢谢你。

4

2 回答 2

1

我不相信这是您可以设置为应用程序开发人员的东西,因为这会覆盖所有其他类似同类应用程序。因此,这仅设置为用户选择。

这解释了用户如何将应用设置为默认状态。 http://www.howtogeek.com/howto/43135/how-to-change-the-default-application-for-android-tasks/

不,我不相信无论如何可以覆盖它。剥夺用户的选择权是一件坏事,你会冒着很多人开始设置和评价你的应用程序的风险。

我已经多次阅读您的问题,每次我都意识到您在问一些不同的问题。我仍然认为这个链接可能会让你走上正轨,它回答了一个类似的问题。

如何调用安卓联系人列表?

它的要点似乎是您需要使用此行直接定位联系人应用程序

Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);

希望有帮助。

于 2012-08-19T11:00:01.073 回答
1

尽管我同意 Emile 的观点,即这与 Android 的工作方式背道而驰,但有一种方法可以让您创建自己的选择器,甚至制作一个默认应用程序来触发该意图。制作默认应用意味着您将在您的应用共享首选项中指定该应用。

更多关于不同线程的信息。

于 2012-08-19T12:06:47.513 回答