如何通过BOOT_COMPLETED禁用运行应用程序

时间:2012-03-15 06:59:08

标签: android

我想要一个软任务管理器,我想检查所有使用android.intent.action.BOOT_COMPLETED的应用程序,我想在移动开始运行时也禁用自动启动。我不知道,如果我需要root权限来完成任何建议可能会收到

3 个答案:

答案 0 :(得分:4)

要检查哪些应用程序接收BOOT_COMPLETED意图操作,您可以使用android PackageManagerResolveInfo类,

Intent intent = new Intent(android.intent.action.BOOT_COMPLETED);

List<ResolveInfo> listApp = packageManager.queryIntentActivities(intent, 0);
for (ResolveInfo res : listApp) {
    Log.e("Camera Application Package Name and Activity Name",res.activityInfo.packageName + " " + res.activityInfo.name));
}

但我认为无法更改其使用的其他应用程序的权限。所以你不能阻止它在BOOT_COMPLETED时间开始。如果你想要这个,那么你必须 ROOT权限

在Android市场上有一个应用程序允许你这样做,例如LBE Privacy Guard

<强>更新

在android框架结构中,在/data/system/packages.xml中包含所有已安装应用程序的信息包括使用权限,(我从不尝试过这个也不知道它是否有效)如果你可以修改这个文件那么可能是你可以实现你想要的...... 感谢..

答案 1 :(得分:1)

请注意,您无法更改上面的/data/system/packages.xml文件以删除android.intent.action.BOOT_COMPLETED权限。

这是因为android框架在启动时会解析每个apk(即app)清单文件,当它看到android.intent.action.BOOT_COMPLETED权限时,它会在那时调用应用程序。

因此,修改文件将无效。我试过这个 - 相信我。我知道删除android.intent.action.BOOT_COMPLETED权限的唯一方法(除了修改andorid框架,重新编译并将其加载到手机上)是手动编辑要删除权限的apk文件。

显然不适合胆小的人!

答案 2 :(得分:0)

如果您可以找到组件的内容(例如,通过查看应用程序的清单),您可以使用以下命令禁用adb命令行或root shell中的组件:pm disable package.name/component.class.name < / p>

Autostarts应用程序执行此操作。它有GPL(我认为)源代码,如果你的应用程序也是GPL,你可以重复使用它。