我正在尝试使用特定的packageName杀死特定的应用程序。 所以这就是我正在做的事情:我使用服务,服务侦听前台进程,一旦找到特定的包,就会触发一个杀手活动,杀手活动现在是一个前景,只有一个textview,显示正确传递包名称。 在杀手活动中,我正在尝试所有这些杀手命令而没有任何反应。 如果我按回去,我会直接去接触未被触及的应用程序。
ActivityManager activityManager = (ActivityManager)
getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE);
activityManager.killBackgroundProcesses(mPackagename);
android.os.Process.killProcess(pid);
activityManager.restartPackage(mPackagename);
Process.killProcess(mPID);
特别是我无法理解:为什么包裹不被杀死:
activityManager.killBackgroundProcesses(mPackagename);
是否因为Android不将目标视为背景?
任何想法的人??
P.S.1:是的,我添加了这些权限:
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/>
<uses-permission android:name="android.permission.RESTART_PACKAGES"/>
P.S.2:请不要告诉我它的坏事我不应该这样做。我知道。谢谢:))
P.S.3:这就是我服务中发生的事情。
List<RunningAppProcessInfo> appProcesses= activityManager.getRunningAppProcesses();
for (RunningAppProcessInfo appProcess : appProcesses) {
try {
if (appProcess.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
if (!lastFrontAppPkg.equals((String) appProcess.pkgList[0])) {
lastFrontAppPkg = (String) appProcess.pkgList[0];
if(!lastFrontAppPkg.equals("android") && mLockedAppString.contains(lastFrontAppPkg)) {
password to launch the lastFrontAppPkg if the pass is correct
Log.d(TAG, "Found a locked: " + lastFrontAppPkg);
Intent i = new Intent();
i.setClass(getApplicationContext(), PasswordCheck.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.putExtra(FOUND_LOCKED_PID, appProcess.pid);
i.putExtra(FOUND_LOCKED_PACKAGE, lastFrontAppPkg);
startActivity(i);
stopSelf();
}
}
}
}
catch (Exception e) {
//e.printStackTrace();
}
}