xvf*_*xvf 5 android android-source
题
如果安装了两个相同类别的应用程序,是否可以在构建上设置默认应用程序?
例
我在AOSP上添加了一个自定义浏览器.我想在构建开始之前将其设置为默认浏览器.
在Android.mk包的文件上有一个选项来指定'LOCAL_OVERRIDES_PACKAGES'哪个基本上覆盖了所提到的包的安装,使我的应用程序成为默认值.
但我希望其他应用程序成为ROM的一部分,我的应用程序是默认的.
任何想法将不胜感激.
所以我找到了一个在构建时将应用程序设置为默认值的解决方案.我正在记录它,希望它可以帮助其他人.
Android系统在/data/system/users/{*user-id*}/package-restrictions.xml名为as 的文件中的块中保留默认应用程序/活动的列表 <preferred-activities></preferred-activities>
此文件由Settings.java和PackageManager.java在构建时生成.每当android系统上的默认值发生变化时,这个xml块上的标志就会相应地改变.
/system/etc/preferred-activities/*.xml例
将自定义浏览器添加到AOSP
如果只在设备上安装了默认浏览器,那么'mybrowser'应该创建以下xml文件.在这种情况下,我将其命名为preferred-activies-home.xml
<?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>
Run Code Online (Sandbox Code Playgroud)/system/etc/preferred-apps/通过添加以下行将上面的xml复制到该位置<!--AOSP_SOURCE-->/build/target/product/full_base.mk
PRODUCT_COPY_FILES +=/<location-of-file>/preferred-activities-home.xml:system/etc/preferred-apps/preferred-activities-home.xml
Run Code Online (Sandbox Code Playgroud)构建后,浏览器活动将设置为默认值
限制和警告
上述过程存在一些限制.它们如下:
| 归档时间: |
|
| 查看次数: |
3780 次 |
| 最近记录: |