繁体   English   中英

安装没有图标或活动的应用程序

[英]Installing application without icon or activity

我和朋友讨论过,他告诉我一些应用程序可以安装在android上,而菜单中没有显示任何活动或图标。 因为我也在研究机器人,所以我很惊讶,因为我从来没有听说过。

应用程序的名称显示在“管理应用程序”部分,易于卸载。

所以现在我要问程序员。 如何(如果是)安装这种应用程序是可能的? (没有活动或发射器)。

只需从清单中删除所有以下意图过滤器:

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

请记住,从Android 3.1开始,如果用户没有手动打开您的应用,您的应用将不会收到任何广播,或者列在其中有意图过滤器可用的任何其他地方(例如在共享菜单中) UI(主要活动)至少一次来自启动器。

还有另一种方法可以在Android3.1 +上运行。您无法禁用图标本身,但可以禁用应用程序的一个组件。 因此,禁用应用程序启动器活动将导致其图标从启动器中删除。

执行此操作的代码很简单:

ComponentName componentToDisable =
  new ComponentName("com.helloandroid.apptodisable",
  "com.helloandroid.apptodisable.LauncherActivity");

getPackageManager().setComponentEnabledSetting(
  componentToDisable,
  PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
  PackageManager.DONT_KILL_APP);

关于此解决方案,有几点需要了解:

1 - 禁用的组件将无法以任何方式启动

其他2个非残疾人活动将可以从其他应用程序中启动

3 - 应用程序只能禁用自己的组件。 有一个权限“android.permission.CHANGE_COMPONENT_ENABLED_STATE”,但它无法正常工作,第三方应用程序无法获得此权限

4 - 启动器重启时图标只会消失,所以下次手机重启时可能会强制启动启动器不建议重启

这样,App必须至少按时运行。

参考:

从启动器中删除应用程序图标

是的,这种应用是可能的。 您必须在Manifest文件中创建一个没有Launcher Activity的应用程序。

例如: - 您可以在收到启动时注册广播。 因此,当设备启动时,您的应用程序将被调用,尽管它没有任何UI。 你可以看看这个

NOTE - 此类应用程序仅在3.1以下工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM