Я попробовал этот код, но он не работает. Я тестирую его на вышеперечисленных устройствах. Позволяет ли android делать это без системного приложения или рута
List<ApplicationInfo> packages;
PackageManager pm;
pm = getPackageManager();
//get a list of installed apps.
packages = pm.getInstalledApplications(0);
ActivityManager mActivityManager = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);
for (ApplicationInfo packageInfo : packages) {
if((packageInfo.flags & ApplicationInfo.FLAG_SYSTEM)==1)continue;
if(packageInfo.packageName.equals("mypackage")) continue;
mActivityManager.killBackgroundProcesses(packageInfo.packageName);
}
Я также эта часть кода, но дает мне эту ошибку:
java.io.IOException: Невозможно запустить программу "su": ошибка = 13, разрешение отклонено
try {
Process suProcess = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(suProcess.getOutputStream());
os.writeBytes("adb shell" + "\n");
os.flush();
Context newContext = LauncherActivity.this;
ActivityManager activityManager = (ActivityManager) newContext.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();
for (ActivityManager.RunningAppProcessInfo appProcess : appProcesses) {
if (appProcess.processName.equals("packagename")) {
} else {
os.writeBytes("am force-stop " + appProcess.processName + "\n");
}
}
os.flush();
os.close();
suProcess.waitFor();
} catch (IOException ex) {
ex.getMessage();
Toast.makeText(getApplicationContext(), ex.getMessage(), Toast.LENGTH_LONG).show();
} catch (SecurityException ex) {
Toast.makeText(getApplicationContext(), "Can't get root access2",
Toast.LENGTH_LONG).show();
} catch (Exception ex) {
Toast.makeText(getApplicationContext(), "Can't get root access3",
Toast.LENGTH_LONG).show();
}