Android 以编程方式启用未知源设置
我想在非根设备上以编程方式打开未知源设置。我已使用此代码进行了检查:Android 以编程方式启用未知源设置,android,performance,android-service,Android,Performance,Android Service,我想在非根设备上以编程方式打开未知源设置。我已使用此代码进行了检查: boolean success; int result = Settings.Secure.getInt(getContentResolver(), Settings.Secure.INSTALL_NON_MARKET_APPS, 0); if (result == 0) { success = Settings.Secure.putString(getContentResolver(), Settings.Secur
boolean success;
int result = Settings.Secure.getInt(getContentResolver(),
Settings.Secure.INSTALL_NON_MARKET_APPS, 0);
if (result == 0) {
success = Settings.Secure.putString(getContentResolver(), Settings.Secure.INSTALL_NON_MARKET_APPS, "1");
}
并具有以下权限:
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>
但在执行时,它说权限被拒绝:写入安全设置需要android.permission.WRITE_secure_settings
,我已经给出了
我已使用设备管理员权限创建此应用程序
但在执行时,它说权限被拒绝:写入安全设置需要android.permission.WRITE_secure_设置,我已经给出了这些设置
您不能持有该权限,除非您使用与固件相同的签名密钥签名,或者您安装在系统分区上(例如,由根设备用户)
我已使用设备管理员权限创建此应用程序
这与以编程方式修改安全设置无关。要做到这一点,必须有root用户。如果你的应用是为root用户制作的,你可以使用上面的代码:
Process p = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(p.getOutputStream());
os.writeBytes("settings put global install_non_market_apps 1");
os.writeBytes("exit\n");
os.flush();
但问题是它不能与所有android版本兼容。android的文档对该许可有何说明?谢谢您的解释。