我正在开发一个 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/