android app隐藏图标不见了,Android 10如何隐藏应用图标

隐藏应用图标这个功能应该用的很少!毕竟用到这个功能的应用可想而之(手动滑稽)

隐藏图标的实现方式我想在网上查到很多了有在AndroidManifest实现的也用通过如下代码实现的

/**

* 启动组件

* @param componentName 组件名

*/

private void enableComponent(ComponentName componentName) {

//此方法用以启用和禁用组件,会覆盖Androidmanifest文件下定义的属性

PackageManager mPackageManager=getPackageManager();

mPackageManager.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);

}

/**

* 禁用组件

* @param componentName 组件名

*/

private void disableComponent(ComponentName componentName) {

PackageManager mPackageManager=getPackageManager();

mPackageManager.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);

}

但是这些实现方式在Android 10系统上面好像不是那么有用!

为什么android10系统隐藏图标无效

Android 10

限制了在启动器中隐藏应用图标的功能。除非满足以下任一条件,否则应用必须具有图标:

它是系统应用,即使是更新后的应用。

它是托管式配置文件管理应用(工作资料所有者)。

它未请求任何权限。

它不包含任何组件(例如,Activity、内容提供程序、广播接收器和服务)。

具有图标且拥有已启用的可启动 Activity 的应用不受影响。除了上面列出的例外情况,所有应用均会显示一个图标。如果应用没有图标,则会显示默认的系统图标。点按没有可启动 Activity 的应用图标时会打开应用信息屏幕。

看到这里是不是明白了为什么Android 10无法隐藏图标了,但是产品经理不听这些!就是要实现这个功能!那到底这个功能怎么适配Android 10呢!干货来了

利用activity-alias 这个是做啥的这里就不叙述了!实现的原理也很简单!就是针对Android 10系统给应用生成两个应用图标!主应用图标和副应用图标!副应用图标默认为透明图标,并且默认不显示!在调用隐藏图标的时候隐藏主应用图标,显示副图标!因为副图标是透明的所以在桌面是看不到的!(虽然看不到 但是还是实际存在的)

上代码

//这个要为false 不然默认会显示两个图标

icon文件

Activity1是一个透明并且只有1像素的activity

public class Acitivity1 extends AppCompatActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

Window window = getWindow();

// 设置窗口位置在左上角

window.setGravity(Gravity.LEFT | Gravity.TOP);

WindowManager.LayoutParams params = window.getAttributes();

params.x = 0;

params.y = 0;

params.width = 1;

params.height = 1;

window.setAttributes(params);

finish();

}

}

这样点击副图标也不会显示跳转到应用详细信息了 !直接给用户感觉无响应!

以上就是针对Android 10系统做的一个方案!有用的话可以看看 没用的话就当看个热闹

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值