I want to turn on Unknown Sources setting programmatically on non rooted device. I have checked with this code:
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");
}
and with following permissions:
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>
but on executing, it says permission denied: writing to secure settings requires android.permission.WRITE_SECURE_SETTINGS
which I already have given.
I have made this application with device admin permission.
but on executing, it says permission denied: writing to secure settings requires android.permission.WRITE_SECURE_SETTINGS which I already have given.
You cannot hold that permission, unless you are signed by the same signing key that signed the firmware or if you were installed on the system partition (e.g., by a rooted device user).
I have made this application with device admin permission.
That has nothing to do with modifying secure settings programmatically.
To do that you must have root. If your app is made for root users you can use the code above:
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();
But the problem is that it is not compatible with all android versions.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With