开发版自启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。开发生词本单词app的基本原理是利用移动端的多媒体特
2023-06-05
自己做简单的app现实吗
在今天的移动互联网时代,我们已经见证了许多成功的应用程序,这些应用程序成为了人们日常生活的一部分。对于初学者来说,学习如何自己制作一个应用程序可能会非常有趣和有意义。本文将简要介绍如何自己制作一个简单的应用程序。应用程序的一般结构首先,我们来看看应用程序的
2023-06-05
自己做的app如何访问网站
当你制作了一款新的应用程序或者是 APP 应用之后,很有可能需要从你的应用程序中加载并访问网站数据信息。连接到网站是你的应用程序中的一个基本功能,然而它实际上涉及到了一系列的技术。在本文中,我们将解释如何在自己制作的应用程序中访问网站,并了解技术背后的运作
2023-06-05
自己做一个单机app要多少钱
要开发一个单机应用不一定需要花费很多钱,不过具体费用与应用的复杂程度、功能需求、设计等因素有关。以下是一些步骤和费用的详细说明。1.需求分析:首先,我们需要分析所需的应用程序应该实现哪些功能,这个步骤非常重要,因为这会影响应用的开发成本和时间。如果需求分析
2023-06-05
自己做一个app可以在哪些平台发布广告
作为一名想要做APP并发行的开发者,你需要知道在哪些平台发布广告是最好的。事实上,在发布你的应用程序之前,你必须考虑哪些广告平台可以为你的应用程序提供最佳的支持。以下是一些最受欢迎的APP广告平台:1. AdMobAdMob是谷歌旗下的广告平台,提供最全面
2023-06-05
自如app开发票还需另交税款吗
在使用自如APP进行在线租房等业务时,用户可以选择开具相应的发票以便进行后续的报销等。但是,很多用户在使用自如APP开具发票时会有一个疑问:开具发票时是否还需要另外交纳税款呢?目前,根据我国税法的规定,在联合国国际货物运输代理人协会发布的《国际运输代理人与
2023-06-05
自己制作的app能赚钱吗
自己制作的app可以赚钱,但是这并不是绝对的,需要具备一定的条件。下面将对自己制作的app能赚钱的原理进行详细介绍。首先,制作app需要一定的技术和知识基础。你需要掌握一些编程语言,如Java、Swift等,并且需要了解一些开发工具和框架。如果你没有这方面
2023-06-05
怎么自己制作一个简单的支付app
制作一个简单的支付app,需要了解以下几个方面的知识。1. 支付接口2. 服务器端3. 客户端下面我将详细介绍这三个方面的内容。1. 支付接口支付接口是指与第三方支付平台进行交互,实现支付功能的构件。常见的第三方支付平台有支付宝和微信支付。在制作支付app
2023-06-05
新手用什么app做自媒体剪辑
随着移动互联网的发展,自媒体已经成为了一种非常重要的传媒方式。现在很多人都在尝试自己成为一名自媒体人,利用自己的兴趣爱好和知识分享,来打造自己的品牌和影响力。在自媒体中,视频成为了非常热门的形式,人们可以通过视频分享自己的经验和知识。那么,新手应该如何去制
2023-06-05
想自己做一个app需要学什么
要完成一个app的制作,需要掌握以下几个基本要素:1. 开发语言和环境为了开发一个应用程序,你需要选择一种编程语言作为开发工具。目前,最常用的开发语言包括Java、Swift、Objective-C、C#、Kotlin等。在掌握一门编程语言的基本语法后,你
2023-05-31
想自己做一个手机app应用
制作一个手机App应用是一个非常有趣也非常挑战性的任务。那么,如何制作一个手机App呢?接下来,我将为大家介绍一些关于制作手机App应用的重要原理和步骤。第一步:确定你的应用目标和目的首先,你需要确定自己制作的App的目标和目的。根据你的目标和目的,你可以
2023-05-31
如何自己开发一个商用app
开发一个商用的App是一项任务繁重的工作,需要深入了解技术和步骤才能完成。以下是一些完整的步骤和原则,可以指导您如何开发一个成功的商用App。1. 定义目标和目标用户在开始开发前先考虑目标和目标用户。 定义商业计划,探索应用程序的收入来源,如何和用户联系,
2023-05-30
©2015-2021 自建app开发平台 www.appbyme.cn 蜀ICP备17005078号-1