Android - 创建自定义启动器

Way*_*int 11 android launcher

我打算为Android手机开发自定义Launcher.我搜索过网络,但是我没有找到有关创建"启动器"项目的任何有价值的信息.Android应用程序需要什么才能位于GUI(也称为启动器)的顶部?

fin*_*las 7

在创建我自己的启动器之前,我不久前看到了这个线程。
以下是我学到的一些重要知识:


将您的应用声明为启动器

David 已经提到了将您的应用程序确定为启动器的一段代码:

<category android:name="android.intent.category.HOME" />
Run Code Online (Sandbox Code Playgroud)

将此添加intent-filter到您的启动器将用于主屏幕的活动(在 中AndroidManifest.xml)。

启动器问题

由于启动器将一直运行,因此您需要了解活动的生命周期以防止出现问题(例如这个)。

如果您希望用户(和您自己)能够不断地使用该应用程序(这就是您通常使用启动器所做的事情),请确保它永远不会崩溃。在发生崩溃的情况下,用户将被带回设备默认启动器或其他已安装的启动器。

简而言之:发射器应该是可靠的。

常见的启动器功能(用户通常期望这些)

1)应用列表/appdrawer

可以从中启动或修改所有应用程序。您可以使用packageManager来列出应用程序。

由于生成这样的列表可能需要一段时间,我建议您异步执行并将列表保存在某处以加快一切速度(这也是启动器所期望的 ^^)

2) 一些更改启动器的设置

在实施这些之前,我有一些用户被困在我的启动器中 ^^

您可以像这样打开设备启动器设置(在 Kotlin 中):

// working in APIs newer than Lollipop
val callHomeSettingIntent = Intent(Settings.ACTION_HOME_SETTINGS)
startActivity(callHomeSettingIntent)
Run Code Online (Sandbox Code Playgroud)

奖励)应用内教程

如果您的应用程序中有一些重要的功能,即用户从其他应用程序中不知道的启动应用程序的方式,这可能会很有用。

它还可以让您减少来自用户询问如何与您的软件交互的消息。


资源:


Dav*_*son 6

那么,首先你需要倾听android.intent.category.HOME意图.以下是一些完整源代码的链接,您可以查看:

或者看看发射器加.