开发版自启app

在Android开发中,有时需要我们在设备开机后自动启动应用程序。这种需求通常出现在需要后台常驻的应用中,例如推送服务、广告服务等等。然而,Android系统中并没有提供直接的API或配置项可以让我们设置应用程序自动启动。因此,我们需要采用一些特殊的技巧来实现这一功能。

一、原理

Android开机后,系统会自动从系统分区加载启动器程序,然后启动该程序。启动器程序通常指的是桌面程序。在桌面程序中,通过应用程序包名来启动我们要启动的应用程序。

因此,只要我们能够在设备开机后,把自己的应用程序添加到系统桌面中,系统自动启动桌面程序后,就可以启动我们的应用程序了。

二、实现方法

1. 添加到桌面

在 Android 设备上创建快捷方式的过程与在应用程序中创建快捷方式的方法类似,具体可以参考以下代码:

```

Intent shortcut = new Intent(ACTION_INSTALL_SHORTCUT);

// 设置快捷方式的名称

shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.app_name));

// 设置快捷方式的icon

ShortcutIconResource icon = Intent.ShortcutIconResource.fromContext(this, R.drawable.icon);

shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);

// 设置快捷方式的intent

Intent launcherIntent = new Intent(this, MainActivity.class);

launcherIntent.setAction(Intent.ACTION_MAIN);

shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, launcherIntent);

sendBroadcast(shortcut);

```

2. 监听开机广播

我们可以通过监听设备启动广播来实现开机后的自动启动。监听 BOOT_COMPLETED 广播需要设置权限,如下所示:

```

```

监听 BOOT_COMPLETED 广播的代码如下:

```

android:name=".BootBroadcastReceiver"

android:enabled="true"

android:exported="false"

android:label="BootBroadcastReceiver">

```

```

public class BootBroadcastReceiver extends BroadcastReceiver {

private final String ACTION_BOOT = "android.intent.action.BOOT_COMPLETED";

@Override

public void onReceive(Context context, Intent intent) {

if (intent.getAction().equals(ACTION_BOOT)) {

Intent bootIntent = new Intent(context, MainActivity.class);

bootIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

context.startActivity(bootIntent);

}

}

}

```

优化:通过判断系统是否处于开机启动时加载应用缩短启动时间

```

public class BootBroadcastReceiver extends BroadcastReceiver {

private static final String ACTION_BOOT = "android.intent.action.BOOT_COMPLETED";

@Override

public void onReceive(Context context, Intent intent) {

// 如果系统处于开机启动状态,加载相应的应用,提升用户体验

if (intent.getAction().equals(ACTION_BOOT)) {

Intent bootIntent = new Intent(context, MainActivity.class);

bootIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

context.startActivity(bootIntent);

}

}

}

```

三、注意事项

1. 必须在系统开机之后才能执行添加到桌面的操作,否则无法添加成功。

2. 在 Android 6.0 以后,如果需要监听 BOOT_COMPLETED 广播,需要动态申请权限。

3. 监听 BOOT_COMPLETED 广播需要在 AndroidManifest.xml 文件中进行配置并添加广播接收器。

4. 在 Android 8.0 及以上版本中,如果应用程序长时间处于后台状态,可能会被系统强制停止,导致自启动失败。如果需要保证应用程序在后台常驻运行,可以使用前台服务或者通过 JobScheduler 进行调度。

总之,通过监听开机广播和添加桌面快捷方式,我们可以实现在设备开机后自动启动应用的功能。通过此方法实现自启动功能需要注意 Android 系统的版本限制和权限限制,同时应该尽量避免对用户造成不必要的干扰。


相关知识:
自己做菜送外卖app
随着互联网时代的发展,各行各业都倾向于以互联网为媒介进行市场扩张,餐饮行业也不例外。如今,可以看到各种送餐平台层出不穷,这些平台通过信息技术手段把每个消费者和商家联系起来,实现餐品的送餐服务。自己做菜送外卖app也成为了其中的一款应用,在市场上得到了广泛的
2023-06-05
自己做网盘app
随着互联网技术的快速发展,越来越多的人们选择将自己的文件存储在云端。作为一个网站博主,也许你也想尝试自己构建一个网盘应用,为用户提供更好的云存储服务。本文将为大家介绍如何自己制作网盘app,希望能对大家有所帮助。首先,我们需要了解网盘的原理。网盘是一种基于
2023-06-05
自己做的app可以在哪个平台发布作品
当我们完成自己的APP开发之后,问题来了:如何发布这个APP,让更多的人能够使用呢?通常来说,我们可以选择将APP上传发布至应用商店进行发布和分发。下面就是一些常见的发布平台介绍。1. 苹果App Store苹果公司提供了“App Store”这一平台,这
2023-06-05
自购省钱app开发解决方案
随着网络购物的发展,越来越多人喜欢网购,但是网购价格多少比实体店贵一些,对于人们来说是很不划算的。为了解决这个问题,市场上涌现了很多省钱app。自购省钱app的原理就是通过app提供商家优惠券和返利等奖励来吸引用户购买,同时把商家和消费者联系在一起,让商家
2023-06-05
自己编程做个app
随着移动互联网的飞速发展,APP已经成为人们日常生活不可或缺的一部分。但是,对于很多人来说,自己编写一个APP似乎是一件非常困难的事情。事实上,只要你有一定的编程基础,就可以通过学习相关知识,自己编写一个简单的APP。首先,你需要确定你要开发的APP的类型
2023-06-05
要自己开发app要多少人
开发一款APP离不开团队合作,需要开发人员、设计师、测试工程师、产品经理,人员数量会根据项目复杂程度和时间决定。下面我将通过原理和详细介绍来说明开发APP需要多少人。1. 开发人员开发人员是APP开发的核心人员,他们负责编写程序,实现APP的各项功能。根据
2023-06-05
无需编程即可自己做app
制作手机应用通常需要具备专业的编程知识以及相关的软件开发技术,这对于大多数人来说可能不太容易实现。然而,如今市场上已经出现了一些无需编程即可自己做app的工具,帮助个人和中小企业快速制作出自己的手机应用程序。本文将为大家介绍这些工具的原理和实现方式。无需编
2023-05-31
如何自己制作app控制小车
制作一款可以通过手机app控制的小车,需要掌握以下步骤:1.准备材料和工具首先,需要准备一些硬件和软件的材料和工具:硬件:- 一块micro:bit开发板- 一块micro:bit扩展板- 2个马达- 1个9V电池- 1个9V电池盒- 一些杜邦线- 两个轮
2023-05-30
免费自建app
现在,我们大家都知道移动应用程序已经成为数字时代的重要组成部分。手机用户数量暴增,而新兴公司和初创企业越来越需要一个移动应用程序,以帮助他们在这个竞争激烈的市场中站稳脚跟。自建app不仅能节省成本,还能满足自己的需求。下面我将分享一下免费自建app的原理和
2023-05-30
好用的自建球员app
自建球员App是一款让用户可以自主创建自己的虚拟足球球员,并与全球球迷互动的应用程序。这款App受到越来越多的球迷的欢迎,因为它能让球迷们实时地享受足球游戏的快乐。在这篇文章中,我们将介绍一下这款应用程序的原理和功能。一、原理自建球员App的原理是用户可以
2023-05-30
app开发自学教程论坛
近年来,随着移动互联网的快速发展,移动设备的普及率越来越高,app开发的需求也逐步增加。因此,学习app开发的人群也越来越广泛。在这个时代,自学成为了快速学习新知识的一条主要途径。如果你也想自学app开发,那么一个专业的app开发自学教程论坛会是你的最佳选
2023-05-30
app 开发版本自动提示更新
App 开发版本自动提示更新已成为现代 App 开发的标准,以保证用户持续获得最新的功能和修复后的稳定性。自动提示更新的原理是通过 App 内置的更新检测机制,自动调用服务器上最新版本的 App,如果更新版本与本地版本不同,则提示用户更新。下面,我们将详细
2023-05-30
©2015-2021 自建app开发平台 www.appbyme.cn 蜀ICP备17005078号-1