Android 7.1 ro.rk.install_non_market_apps属性无效

平台

RK3288/RK3368 + Android 7.12

问题

在旧的SDK上, 可以通过设置默认 ro.rk.install_non_market_apps=true, 默认打开安装未知来源应用 在新的代码上此属性不生效

解决

diff --git a/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java b/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
old mode 100644
new mode 100755
index 9ed6063..dac22e1
--- a/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
+++ b/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
@@ -2522,8 +2522,13 @@ class DatabaseHelper extends SQLiteOpenHelper {
             loadStringSetting(stmt, Settings.Secure.IMMERSIVE_MODE_CONFIRMATIONS,
                         R.string.def_immersive_mode_confirmations);
 
-            loadBooleanSetting(stmt, Settings.Secure.INSTALL_NON_MARKET_APPS,
-                    R.bool.def_install_non_market_apps);
+            String propNonMarket = android.os.SystemProperties.get("ro.rk.install_non_market_apps");
+            if(propNonMarket.equals("true")){
+                loadSetting(stmt, Settings.Secure.INSTALL_NON_MARKET_APPS, "1");
+            }else{
+                loadBooleanSetting(stmt, Settings.Secure.INSTALL_NON_MARKET_APPS,
+                        R.bool.def_install_non_market_apps);
+            }
 
             loadBooleanSetting(stmt, Settings.Secure.WAKE_GESTURE_ENABLED,
                     R.bool.def_wake_gesture_enabled);

  • frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
    private void loadSecureSettings(SQLiteDatabase db) {
        SQLiteStatement stmt = null;
        try {
        //...省略代码...
            String propNonMarket = android.os.SystemProperties.get("ro.rk.install_non_market_apps");
            if(propNonMarket.equals("true")){
                loadSetting(stmt, Settings.Secure.INSTALL_NON_MARKET_APPS, "1");
            }else{
                loadBooleanSetting(stmt, Settings.Secure.INSTALL_NON_MARKET_APPS,
                        R.bool.def_install_non_market_apps);
            }
		//...省略代码...
	}

插曲

  • 刚开始加的代码是:
            loadBooleanSetting(stmt, Settings.Secure.INSTALL_NON_MARKET_APPS,
                        R.bool.def_install_non_market_apps);
            String propNonMarket = android.os.SystemProperties.get("ro.rk.install_non_market_apps");
            if(propNonMarket.equals("true")){
                loadSetting(stmt, Settings.Secure.INSTALL_NON_MARKET_APPS, "1");
            }

这是无效的, 原因是, 第一行的代码已经往数据库里插入了数据. 见下面SQLiteStatement 的赋值方式:

        SQLiteStatement stmt = null;
        stmt = db.compileStatement("INSERT OR IGNORE INTO secure(name,value)"
                    + " VALUES(?,?);");
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
prism7.1.0.431_wpf_官方中文文档是指Prism开发框架的WPF版本的官方中文文档。下面我将用300字回答有关该文档的问题。 Prism是一个用于构建模块化、可扩展和可维护的WPF应用程序的开发框架。其目标是帮助开发人员更容易地通过解耦、组合和重用来构建高质量的应用程序。Prism提供了一套基于MVVM模式的开发指南和工具,使开发人员能够更加高效地开发WPF应用程序。 prism7.1.0.431_wpf_官方中文文档是一份由Prism团队编写的WPF版本的官方中文文档。该文档提供了对Prism开发框架的全面介绍和详细解释,包括框架的概述、基本概念、核心组件和开发技巧等内容。 通过阅读该文档,开发人员可以了解Prism框架的核心概念,例如依赖注入、模块化、命令和导航等。文档还提供了丰富的实例和代码段,使开发人员能够更好地理解和应用这些概念。 此外,该文档还介绍了Prism框架的高级特性,例如界面交互、事件聚合器、模块间通信和异常处理等。开发人员可以通过这些特性来构建更加灵活和可扩展的WPF应用程序。 总之,prism7.1.0.431_wpf_官方中文文档是一份重要的参考资料,对于需要使用Prism框架进行WPF应用程序开发的开发人员来说,它提供了全面而详细的指导和解释,可以帮助开发人员更好地理解和应用Prism框架,提高开发效率和应用程序质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值