如何隐藏任何应用程序?

时间:2014-11-19 05:49:59

标签: android

我想从我的应用中隐藏任何应用程序(whatsapp,facebook ...)。我尝试使用自己的应用程序隐藏/取消隐藏列表。它的工作完美。但我想从我的应用程序隐藏另一个应用程序。我尝试使用此代码。

我获得应用包名称&它的活动名称使用此代码。

public void getPackageAndActivityname() {
    final PackageManager pm = getPackageManager();

    Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
    mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);

    List < ResolveInfo > appList = pm.queryIntentActivities(mainIntent, 0);
    Collections.sort(appList, new ResolveInfo.DisplayNameComparator(pm));

    for (ResolveInfo temp: appList) {
        Log.e("HIDEAPP", "package:- " + temp.activityInfo.packageName + "    activity name:- " + temp.activityInfo.name);
    }
}

使用此包名称&amp;以下方法中的活动名称(例如隐藏UC Brower)。

public void hideApp() {
    PackageManager p = getPackageManager();
    ComponentName componentName = new ComponentName("com.UCMobile.intl", "com.uc.browser.UCMobileApp");  // ucWebbrowser hide from app list
    p.setComponentEnabledSetting(componentName,PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
}

我的清单文件提出了这个许可。

<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE"/>

但我得到了这种类型的错误

java.lang.SecurityException: Permission Denial: attempt to change component state from pid=26587, uid=10477, package uid=10426

我指的是这两个链接。 Link 1Link 2。 但我得到了这种类型的错误。我在摩托罗拉Moto G手机(OS:Kitkat 4.4.4)中运行此应用程序。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

  

我该如何解决这个问题?

第一次启动后,您只能隐藏一次应用程序图标。

否您无法隐藏其他应用的图标。您无法控制更新其他应用的这些设置。

每个Android应用程序在不同的进程和系统中运行,为每个应用程序分配不同的ID,因此您无权访问从另一个进程更新一个进程的设置。如果您的设备已植根,则可以这样做。