当前位置:  开发笔记 > 编程语言 > 正文

在AOSP上设置默认应用程序

如何解决《在AOSP上设置默认应用程序》经验,为你挑选了1个好方法。

如果安装了两个相同类别的应用程序,是否可以在构建上设置默认应用程序?

我在AOSP上添加了一个自定义浏览器.我想在构建开始之前将其设置为默认浏览器.

Android.mk包的文件上有一个选项来指定'LOCAL_OVERRIDES_PACKAGES'哪个基本上覆盖了所提到的包的安装,使我的应用程序成为默认值.

但我希望其他应用程序成为ROM的一部分,我的应用程序是默认的.

任何想法将不胜感激.



1> xvf..:

所以我找到了一个在构建时将应用程序设置为默认值的解决方案.我正在记录它,希望它可以帮助其他人.

    Android系统在/data/system/users/{*user-id*}/package-restrictions.xml名为as 的文件中的块中保留默认应用程序/活动的列表

    此文件由Settings.java和PackageManager.java在构建时生成.每当android系统上的默认值发生变化时,这个xml块上的标志就会相应地改变.

    在构建,系统读取从一组优选的活动的附加位置,其是/system/etc/preferred-activities/*.xml

    为了添加我们想要的首选/默认活动,我们创建一个xml文件并将其放在/ system/etc/preferred-activities /然后由android系统读取,并将首选活动列表添加到包中的列表中 - restrictions.xml

将自定义浏览器添加到AOSP

如果只在设备上安装了默认浏览器,那么'mybrowser'应该创建以下xml文件.在这种情况下,我将其命名为preferred-activies-home.xml


   
      
         
         
         
            
            
            
         
      
   

/system/etc/preferred-apps/通过添加以下行将上面的xml复制到该位置/build/target/product/full_base.mk

PRODUCT_COPY_FILES +=//preferred-activities-home.xml:system/etc/preferred-apps/preferred-activities-home.xml

构建后,浏览器活动将设置为默认值

限制和警告

上述过程存在一些限制.它们如下:

在构建时,我们需要知道正在处理特定intent-filters的所有应用程序的主要活动.

上述过程并没有对发射后的第一个引导工作.假设ResolverActivity不考虑启动时的包限制.

推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有