Android 在AOSP上设置默认应用程序
问题 如果两个应用程序属于同一类别,我可以在生成中设置默认应用程序吗 安装 示例 我正在AOSP上添加自定义浏览器。我想在构建开始之前将其设置为默认浏览器 在软件包的Android 在AOSP上设置默认应用程序,android,android-source,Android,Android Source,问题 如果两个应用程序属于同一类别,我可以在生成中设置默认应用程序吗 安装 示例 我正在AOSP上添加自定义浏览器。我想在构建开始之前将其设置为默认浏览器 在软件包的Android.mk文件中,有一个选项可以指定'LOCAL\u OVERRIDES\u packages',它基本上覆盖了上述软件包的安装,使我的应用程序成为默认应用程序 但我希望另一个应用程序是ROM的一部分,默认为我的应用程序 任何想法都将受到欢迎。因此我找到了一个解决方案,可以在构建时将应用程序设置为默认值。我正在记录它,希望
Android.mk
文件中,有一个选项可以指定'LOCAL\u OVERRIDES\u packages'
,它基本上覆盖了上述软件包的安装,使我的应用程序成为默认应用程序
但我希望另一个应用程序是ROM的一部分,默认为我的应用程序
任何想法都将受到欢迎。因此我找到了一个解决方案,可以在构建时将应用程序设置为默认值。我正在记录它,希望它能帮助其他人
/data/system/users/{*user id*}/package restrictions.xml的文件块中,称为
/system/etc/preferred activities/*.xml
- 如果其他设备上仅安装了默认浏览器 应创建以下xml文件的“mybrowser”。在这个 在这种情况下,我将其命名为preferred-activies-home.xml
- 生成后,浏览器活动将设置为默认
- 在构建时,我们需要知道所有组件的主要活动 处理特定目的过滤器的应用程序
- 上述过程在第一次引导时对Launcher不起作用。 推定是决议活动不考虑 启动时的包限制
软件包限制。xml
在Pie上的首选活动数量似乎有限。dumpsys包首选xml
和dumpsys包pref
的情况也是如此。可能是由于getPreferredActivities
和getPreferredPackages
在Q中被弃用,它被转移到了其他数据库文件中,或者被system\u服务器动态处理。xml文件是否进入/system/etc/preferredapps/或/system/etc/preferredactivities/?你都提到了。
<?xml version="1.0" encoding="UTF-8"?>
<preferred-activities>
<item name="com.mybrowser.MainActivity" match="200000" always="true" set="2">
<set name="com.mybrowser./.MainActivity" />
<set name="com.android.browser/.BrowserActivity" />
<filter>
<action name="android.intent.action.VIEW" />
<cat name="android.intent.category.DEFAULT" />
<scheme name="http" />
</filter>
</item>
</preferred-activities>
PRODUCT_COPY_FILES +=/<location-of-file>/preferred-activities-home.xml:system/etc/preferred-apps/preferred-activities-home.xml