Android的PackageManager使任何应用程序 [英] Android PackageManager enable any application

查看:72
本文介绍了Android的PackageManager使任何应用程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经制定中,我已经启用了一个应用程序,我们有可以手动安装任何应用程序

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆