android - 在 Android 中,您可以设置默认应用程序,而不是在启动新 Activity 时要求用户从列表中进行选择吗?

标签 android android-activity contacts

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

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

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

我尝试过使用以下命令:

intent.setData(ContactsContract.Contacts.CONTENT_URI);

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

谢谢。

最佳答案

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

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

不,我不相信有什么办法可以覆盖这个。剥夺用户的选择权是一件坏事,您可能会冒很多人对您的应用进行差评的风险。

我已经读过你的问题好几次了,每次我都意识到你问的是不同的东西。不过我认为这个链接可能会让您走上正轨,它回答了类似的问题。

How to call Android contacts list?

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

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

希望有帮助。

关于android - 在 Android 中,您可以设置默认应用程序,而不是在启动新 Activity 时要求用户从列表中进行选择吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12025413/

相关文章:

android - 如何将大位图缩放为方形位图

android - 在 DialogFragment 中时未触发 onKeyDown() 事件

android - 在通过蓝牙接收到一些文件时触发一个 Activity

android - 在 Android 中,我应该在 fragment 或 Activity 中接收 fragment 点击事件吗?

iphone - 以编程方式请求访问联系人

java - 我正在为 android 使用 Firebase Apple 登录

android - 多 Intent 附加

java - Zxing: Activity 获取结果

ios - 在 iOS 6 上保存联系人时出现 Phonegap ContactError

android - 通过不在 android 游标中工作来排序