Android的PackageManager使任何应用程序 [英] Android PackageManager enable any application
问题描述
我已经制定中,我已经启用了一个应用程序,我们有可以手动安装任何应用程序
I have developed an application in which I have enabled that any application which we have can be installed manually
但我的问题是,我只是想使自己的包名称,而没有任何其他应用程序软件包的名称。
But my problem is that I only want to enable my own package name and rather not any other application package name.
下面是code我都习惯了。
Here is the code I have used.
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包名是我的第一个应用launcherActivity。
here "com.service" is the package name that I install and "com.service.EnableActivity" is my first app launcherActivity.
登录
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)
但是当我使用相同的应用程序包名称和类名,然后它的正常工作。
But when I use the same application packagename and classname then it's working fine.
推荐答案
将此code在这两个应用程序mainfest。
Add this code in your both applications mainfest.
<manifest
.......
.......
.......
android:sharedUserLable="...."
android:sharedUserID="...">
,因为它需要一个用户ID是一样的。
because it need a userid to be same
这会帮助你。
这篇关于Android的PackageManager使任何应用程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!