开发版自启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来实现快速、高效、准确地查询数据的目的。一、原理介绍自建数据库查询app的基本原理是通过搭建自己的数据库服务器,将需要查询的数据上传至服
2023-06-05
自建app不花钱的平台有哪些软件
自建app是当下非常流行的一个趋势。人们越来越喜欢通过自己的方式创造一个属于自己的app来满足其需求。但是,对于许多人来说,没有编程知识和经验可能会感到无从下手。然而,现在有许多免费的app建造平台可以帮助人们轻松地建立自己的应用程序。本文将介绍其中一些最
2023-06-05
自建 app
随着移动互联网的普及和发展,自建 app 成为越来越多人的追求和需求。自建 app 有很多好处,最为突出的是可以快速构建自己的品牌形象,提高用户体验和运营效率。在此我们将为大家介绍自建 app 的原理和详细步骤。一、自建 app 的原理自建 app 的原理
2023-06-05
自己做购物app软件
做购物App是现在非常流行的一个方向,无论是个人业余时间还是公司的项目都可以考虑这个方向。以下是一个简要的购物App的开发流程介绍。第一步,确定需求。在做App开发之前,首先要确定它的需求,直观的方式是画出一个流程图或原型图,原型图需要描述App的界面布局
2023-06-05
自己做个app经营需要注意哪些
随着移动互联网和智能手机的普及,越来越多的人开始思考如何开发一款自己的移动应用程序,尤其是在这个移动互联网爆发的时代,开发一个自己的APP已经成为创业者的一个不错的选择。但是,做一个成功的移动应用程序是有很多需要注意的地方,接下来我们具体看一下需要注意哪些
2023-06-05
自己想组个app开发团队
想要组建一支优秀的App开发团队,需要考虑一系列的因素,包括团队规模、成员招聘及培养、项目管理、开发流程和技术选型等方面,下面将分别进行介绍。一、团队规模团队规模应该根据项目的需求和复杂程度来确定,也需要综合考虑人力、时间和成本等方面的因素。一般来说,Ap
2023-06-05
自己先开发一个app不注册公司
想要开发一个app,我们需要的工具有:一台电脑、一款软件开发工具,比如Android Studio,以及一些基础知识,比如编程语言Java或Kotlin。开发一个app的过程可以看作是编写代码并将其编译成可执行文件的过程。下面是具体步骤:1. 确定app的
2023-06-05
怎么样制作自己的app
在现代社会,移动应用程序越来越受欢迎,不断涌现出各种类型的APP。然而,你有没有想过自己动手制作一款APP呢?如果你有这样的想法,那么请跟我一起了解一下制作APP的几个关键步骤。一、确定APP的类型和功能在制作APP之前,首先需要确定你想要制作的APP类型
2023-06-05
学java可以自己做app吗
Java是一种广泛使用的编程语言,在移动领域也很有用。学Java可以让你开发基于Android系统的应用程序。 在本篇文章中,我将详细介绍如何使用Java开发Android应用程序。1. 安装Java首先,你需要安装Java Development Kit
2023-06-05
小说封面自己制作的app
小说封面是书籍销售中的重要一环,它可以吸引读者的注意力,让读者更有兴趣阅读该小说。因此,需求量较大的小说市场渐渐衍生出了一批封面自制软件,帮助用户制作出充满艺术感和商业氛围的封面。制作小说封面自己的app可以采用以下三种方式:1. 美术设计软件美术设计软件
2023-05-31
可以做自动化网格交易的app
自动化网格交易是一种基于网格策略的交易方法,旨在通过设置交易网格和网格的买入卖出价格,实现自动交易的目的。相对于传统的手动交易方式,自动化网格交易更加高效、精确,并且无需人工干预。自动化网格交易的实现原理包括两个主要步骤:网格设置和自动化交易执行。1. 网
2023-05-30
钉钉自己开发的app扫描二维码
钉钉是一款企业级的综合办公软件,支持企业内部的通讯、日程、邮件、文件管理等多种功能,同时也支持第三方应用接入,扩展了其功能和使用场景。在钉钉内部集成自己开发的app,可以更好地满足企业的需求。在钉钉中打开自己开发的app,可以通过扫描二维码的方式打开,这个
2023-05-30
©2015-2021 自建app开发平台 www.appbyme.cn 蜀ICP备17005078号-1