老掉牙施教你山寨360手机安全卫士,优化大师,QQ手机管家,金山卫士的一些功能(2)实现禁止掉开机自启程序
老施教你山寨360手机安全卫士,优化大师,QQ手机管家,金山卫士的一些功能(2)实现禁止掉开机自启程序
老施一直觉得。方案很重要,所以我就不给出具体的代码了。就给两个核心的代码。禁止自启程序代码和恢复自启程序方法。你也可以封装成一个方法,。
/** 关闭开机启动项管理 */ public void closeAutoStartApp(final String appPackageName) { progressDialog = ProgressDialog.show(this, null, "正在禁止,请稍候……"); new Thread() { public void run() { Process process = null; DataOutputStream os = null; String command = ""; try { process = Runtime.getRuntime().exec("su"); os = new DataOutputStream(process.getOutputStream()); os.flush(); command = "pm disable " + appPackageName + " \n"; os.writeBytes(command); os.writeBytes("exit\n"); os.flush(); os.close(); process.waitFor(); process.destroy(); } catch (Exception e) { e.printStackTrace(); } finally { } handler.sendEmptyMessage(0); } }.start(); } /** 恢复开机启动项管理 */ public void startAutoStartApp(final String appPackageName) { progressDialog = ProgressDialog.show(this, null, "正在恢复,请稍候....."); new Thread() { public void run() { Process process = null; DataOutputStream os = null; String command = ""; try { process = Runtime.getRuntime().exec("su"); os = new DataOutputStream(process.getOutputStream()); command = "CLASSPATH=/system/framework/pm.jar \n"; os.writeBytes(command); os.flush(); command = "pm enable " + appPackageName + " \n"; os.writeBytes(command); os.writeBytes("exit\n"); os.flush(); os.close(); process.waitFor(); process.destroy(); } catch (Exception e) { e.printStackTrace(); } finally { } handler.sendEmptyMessage(0); } }.start(); }
在ListView代码调用的时候记得传的参数是包名+“/”+info.activityInfo.name 如不懂info.activityInfo.name的参数,请看第一篇文档。closeAutoStartApp(adapter.getItem(position).packageName
+ "/" + adapter.getItem(position).name);调用方式。 如果各位有兴趣的想知道我的具体实现方法,请Q我。注意:禁止掉自启动程序需要root权限。