Android 在没有 Root 的情况下从菜单中隐藏/禁用应用程序

标签 android permissions hide root

我正在开发一个 Android 应用程序,它可以在没有 root 权限的情况下管理安装在您手机上的应用程序。

我已经完成了大部分功能,但我还停留在一个功能上。

我必须隐藏用户从菜单中选择的特定应用程序。但我无法做到这一点。

我已经试过了

PackageManager p = getPackageManager();
p.setApplicationEnabledSetting(packageNameOfApp, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);

但是我收到了一个权限被拒绝的错误...我该如何解决这个问题,请帮忙

这是我的 list 权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE" />

我已经尝试添加

android:sharedUserId="android.uid.system"

标记到 Manifest 但给出如下所示的错误

INSTALL_FAILED_SHARED_USER_INCOMPATIBLE

我很抱歉发布这么长的问题,但我试图尽可能详细。

如有任何帮助,我们将不胜感激。

谢谢

最佳答案

查看 CHANGE_COMPONENT_ENABLED_STATE 标志的 android list 权限文档,并注意以下短语:

不供第三方应用程序使用。

据我所知,共享系统用户 ID 会违反操作系统提供的大部分安全性。

还有另一种解决方案:您可能使用了代替 OEM/Google 启动器运行的启动器应用程序(Apex、Nova Launcher)。这些应用程序提供自己的应用程序列表,并允许在不禁用应用程序的情况下隐藏它们。很明显,这不是您想要做的,但创建自定义启动器并维护您自己的应用列表可能是您在没有 root 的情况下最接近的方法。

关于Android 在没有 Root 的情况下从菜单中隐藏/禁用应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21117668/

相关文章:

android - 退出 Android 应用程序的最佳方法?

r - Windows 7,update.packages 问题 : "unable to move temporary installation"?

Android广播接收器自定义权限

javascript - 选中不同的复选框会隐藏输入字段

android - 错误 :Cause: org. gradle.api.Project.getPluginManager()Lorg/gradle/api/plugins/PluginManager;有关更多详细信息,请参阅 IDE 日志(帮助 | 显示日志)

android - 查看持有者 OnClickListener 事件问题

c# - 如何隐藏devexpress XtraGrid的列

html - 如何将元素隐藏在 div 边界之外

android - 即使手机关闭也能处理应用程序的解决方案

java - 通过 RMI 调用返回类实例