我开发了一个应用程序,在该应用程序中我启用了我们拥有的任何应用程序都可以手动安装
但我的问题是我只想启用我自己的包名称,而不是任何其他应用程序包名称。
这是我使用的代码。
try {
PackageManager pm1 = getPackageManager();
pm1.setComponentEnabledSetting(new ComponentName("com.service",
"com.service.EnableActivity"),
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP
);
} catch (SecurityException e) {
e.printStackTrace();
}
这里“com.service”是我安装的包名称,“com.service.EnableActivity”是我的第一个应用程序启动器活动。
日志
java.lang.SecurityException: Permission Denial: attempt to change component state from pid=3354, uid=10056, package uid=10058 at
android.os.Parcel.readException(Parcel.java:1322) at
android.os.Parcel.readException(Parcel.java:1276) at
android.content.pm.IPackageManager$Stub$Proxy.setComponentEnabledSettingIPackageManager.java:2217)
但是当我使用相同的应用程序包名和类名时,它工作正常。