我想要一个软任务管理器,我想检查所有使用android.intent.action.BOOT_COMPLETED的应用程序,我想在移动开始运行时也禁用自动启动。我不知道,如果我需要root权限来完成任何建议可能会收到
答案 0 :(得分:4)
要检查哪些应用程序接收BOOT_COMPLETED
意图操作,您可以使用android PackageManager
和ResolveInfo
类,
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,你可以重复使用它。