gpt4 book ai didi

Android PackageManager 启用任何应用程序

转载 作者:行者123 更新时间:2023-11-29 22:15:57 25 4
gpt4 key购买 nike

我开发了一个应用程序,我在其中启用了我们拥有的任何应用程序都可以手动安装

但我的问题是我只想启用我自己的包名而不是任何其他应用程序包名。

这是我用过的代码。

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”是我的第一个应用程序启动器 Activity 。

日志

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)

但是当我使用相同的应用程序包名和类名时,它工作正常。

最佳答案

将此代码添加到您的两个应用程序 mainfest 中。

<manifest
.......
.......
.......
android:sharedUserLable="...."
android:sharedUserID="...">

因为它需要一个相同的userid

这对你有帮助。

关于Android PackageManager 启用任何应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8445881/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com