我正在尝试使用以下代码隐藏另一个应用程序:
PackageManager pm = this.getPackageManager();
pm.setComponentEnabledSetting(new ComponentName("com.sas.remotesample",".Player"),
PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, PackageManager.DONT_KILL_APP);
并具有以下权限:
<uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE"/>
但它抛出
java.lang.SecurityException: Permission Denial: attempt to change component state
最佳答案
CHANGE_COMPONENT_ENABLED_STATE
的 protectionLevel
为 signature|privileged
。这意味着:
您必须构建自己的自定义 ROM,然后使用用于签署自定义 ROM 的同一签名 key 对您的应用程序进行签名。然后,安装了您的自定义 ROM 的设备将允许您的应用控制其他应用的组件状态。
您的应用必须由用户推送到已取得 root 权限的设备上的系统分区。
否则,您无法持有此权限。或者,如the documentation for the permission声明“不供第三方应用程序使用”。
关于java - 在 Android 中隐藏另一个应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39107664/