【问题标题】:How to hide any application?如何隐藏任何应用程序?
【发布时间】:2015-01-16 13:27:57
【问题描述】:

我想从我的应用程序中隐藏任何应用程序(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);
    }
}

在下面的方法中使用这个包名称和活动名称(例如隐藏 UC 浏览器)。

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 手机(操作系统:Kitkat 4.4.4)中运行这个应用程序。我该如何解决这个问题?

【问题讨论】:

    标签: android


    【解决方案1】:

    我该如何解决这个问题?

    您的应用程序图标在首次启动后只能隐藏一次。

    不,您不能隐藏其他应用程序的图标。您无权更新其他应用的这些设置。

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

    【讨论】:

    • 还有其他隐藏应用的方法吗?就像制作自己的发射器一样。 @威廉姆斯
    • @JigarShekh 不,你不能
    猜你喜欢
    • 1970-01-01
    • 2018-03-28
    • 1970-01-01
    • 2011-08-31
    • 2013-01-26
    • 2016-10-21
    • 1970-01-01
    • 1970-01-01
    • 2011-06-02
    相关资源
    最近更新 更多