展锐 Android9.0 第三方应用无法接收开机广播

展锐平台 省电管理 vendor/sprd/modules/power/fw-power-config/appPowerSaveConfig.xml










  • optimize:是否应用电池优化,其中 0 表示白名单(不优化),1 表示黑名单(优化)
  • alarm:是否待机唤醒优化,其中 0 表示自动,1 表示黑名单(优化), 2 表示白名单(不优化)
  • wakelock:是否待机休眠,其中 0 表示自动,1 表示黑名单(优化), 2 表示白名单(不优化)
  • network:是否数据联网限制,其中 0 表示自动,1 表示黑名单(优化), 2 表示白名单(不优化)
  • autolaunch:是否自启动管理,其中 1 表示黑名单(禁止),2 表示白名单(允许)
  • secondarylaunch:是否关联启动,其中 1 表示黑名单(禁止),2 表示白名单(允许)
  • lockscreencleanup:是否锁屏清理,其中 0 表示黑名单,1 表示白名单
  • consumertype:对应该应用的耗电情况,0对应耗电情况未知。其他值意义如下:0x01: 表示alarm频繁唤醒;0x02:表示长时间持锁; 0x04: 表示长时间使用gps

       实际值可能为上述各值的组合

实际在我们的代码中AppPowerSaveConfig.java中

    public AppPowerSaveConfig() {
        for (int i = 0; i < ConfigType.TYPE_MAX.value; i++) {
            setConfigWithType(this , i, mDefConfig[i]);
        }
    }

 mDefConfig数组为默认值

    private static int[] mDefConfig = {VALUE_OPTIMIZE, // for optimize
        VALUE_AUTO, // for alarm
        VALUE_AUTO, // for wakelock
        VALUE_AUTO, // for network
        VALUE_OPTIMIZE, // for autolaunch
        VALUE_OPTIMIZE, // for 2ndlaunch
        VALUE_AUTO, // for lockscrenn cleanup
        POWER_CONSUMER_TYPE_NONE}; // for powerConsumerType

    public static final int VALUE_INVALID = -1;
    public static final int VALUE_AUTO = 0;
    public static final int VALUE_OPTIMIZE = 1;
    public static final int VALUE_NO_OPTIMIZE = 2;

如果第三方应用没有单独配置,默认VALUE_OPTIMIZE

第三方应用调用开机广播自动启动时,查看log会发现,应用会被加入black list

 Line 20877: S004E19 06-19 06:41:22.633   621   796 D PowerController.BgClean: judgeAppLaunchAllowed : com.quectel.findnetwork(uid:1000), callingPackage = null(uid:1000), reason = send-broadcast
 Line 20879: S004E1B 06-19 06:41:22.633   621   796 D PowerController.BgClean: in apppowerconfig autolaunch black list: com.quectel.findnetwork
 Line 20880: S004E1C 06-19 06:41:22.633   621   796 D PowerController.BgClean: in autolaunch black list: com.quectel.findnetwork, callingPackage = null, reason = send-broadcast denyed!

因此需要把我们对应的应用加入到白名单中

在appPowerSaveConfig.xml中添加如下代码

你可能感兴趣的:(Android,9.0,android)