Android11系统桌面隐藏指定APP图标

88 篇文章 1 订阅
49 篇文章 1 订阅

做项目时有时会遇到这样的需求,客户要求隐藏Launcher3桌面的某个app图标,但是又不能删除去掉这个app,具体修改如下:

diff --git a/src/com/android/launcher3/model/LoaderTask.java b/src/com/android/launcher3/model/LoaderTask.java
old mode 100644
new mode 100755
index 4756edc..eb737de
--- a/src/com/android/launcher3/model/LoaderTask.java
+++ b/src/com/android/launcher3/model/LoaderTask.java
@@ -817,6 +817,9 @@ public class LoaderTask implements Runnable {
             for (int i = 0; i < apps.size(); i++) {
                 LauncherActivityInfo app = apps.get(i);
                 // This builds the icon bitmaps.
+                 if (app.getComponentName().getPackageName().equals("org.chromium.webview_shell")) {
+                       continue;
+                 }
                 mBgAllAppsList.add(new AppInfo(app, user, quietMode), app);
             }
 
diff --git a/src/com/android/launcher3/model/PackageUpdatedTask.java b/src/com/android/launcher3/model/PackageUpdatedTask.java
old mode 100644
new mode 100755
index 78ecbc6..d928383
--- a/src/com/android/launcher3/model/PackageUpdatedTask.java
+++ b/src/com/android/launcher3/model/PackageUpdatedTask.java
@@ -94,6 +94,9 @@ public class PackageUpdatedTask extends BaseModelUpdateTask {
             case OP_ADD: {
                 for (int i = 0; i < N; i++) {
                     if (DEBUG) Log.d(TAG, "mAllAppsList.addPackage " + packages[i]);
+					if ("org.chromium.webview_shell".equals(packages[i])) {
+                          continue;
+					}
                     iconCache.updateIconsForPkg(packages[i], mUser);
                     if (FeatureFlags.LAUNCHER3_PROMISE_APPS_IN_ALL_APPS) {
                         appsList.removePackage(packages[i], Process.myUserHandle());
@@ -111,6 +114,9 @@ public class PackageUpdatedTask extends BaseModelUpdateTask {
             case OP_UPDATE:
                 for (int i = 0; i < N; i++) {
                     if (DEBUG) Log.d(TAG, "mAllAppsList.updatePackage " + packages[i]);
+					if ("org.chromium.webview_shell".equals(packages[i])) {
+                          continue;
+					}
                     iconCache.updateIconsForPkg(packages[i], mUser);
                     appsList.updatePackage(context, packages[i], mUser);
                     app.getWidgetCache().removePackage(packages[i], mUser);

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Android应用中隐藏桌面图标,你可以通过以下步骤实现: 1. 在你的Android项目的AndroidManifest.xml文件中,找到你的启动Activity的声明。通常它是以`<activity>`标签表示的,并且在其中包含一个`<intent-filter>`标签。确保你的启动Activity有`MAIN`和`LAUNCHER`的intent-filter,类似这样: ```xml <activity android:name=".MainActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> ``` 2. 在上述`<activity>`标签中添加一个新的属性:`android:enabled="false"`。这将禁用该Activity的启用状态。 ```xml <activity android:name=".MainActivity" android:label="@string/app_name" android:enabled="false"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> ``` 3. 保存并重新构建你的应用程序,并将其安装到设备上。 现在,当你启动应用程序后,应用程序的图标将不再显示在设备的桌面上。然而,你仍然可以通过其他方式启动该应用程序,例如通过应用程序列表或通过其他应用程序的链接。 请注意,这种方法仅仅是隐藏了应用程序的桌面图标,并没有真正地隐藏或保护应用程序的内容。如果用户知道你的应用程序的包名,并且知道如何启动它,他们仍然可以访问你的应用程序。如果你需要更高级的应用程序隐藏和保护功能,你可能需要使用其他技术或库来实现,例如使用设备管理器API或加密应用程序内容。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值