开发版自启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的开发原理和详细步骤。一、自用app的开发原理自用app的开发可以利用现成的开发
2023-06-05
自己做酷跑app
酷跑是一款在移动设备上非常流行的休闲游戏,许多游戏爱好者对于如何自己开发一个酷跑应用程序非常感兴趣。本文将会介绍一些关于开发酷跑应用程序的原理或者详细介绍,希望能够帮助爱好者更好地了解这个领域。在开发一个酷跑应用程序之前,需要考虑一些事情,并且需要选择一个
2023-06-05
自己做出app怎么挣钱
自己做出一款APP并且能够通过它实现盈利,是很多APP开发者的梦想。然而,要实现这个梦想,需要掌握一些基本的知识和技能,以及了解一些盈利模式。本文将详细介绍自己做出APP如何赚钱的原理。1.广告收益广告收益是一种最常见的APP盈利模式。APP开发者可以通过
2023-06-05
自主app制作费
互联网时代,自主App制作成为了许多人的梦想。而在市面上,很多公司也提供了自主App制作的服务,像是好耶等平台,但这些平台制作出的App通常都是基于模板的,并不能满足很多人的需求。如果想要制作出独特且适合自己的App,需要找到适合自己的方法。自主App制作
2023-06-05
自己手机开发app的网址
自己开发手机APP可以让你将创意化为现实,而且还能学到很多新的技能和知识。本篇文章将介绍自己开发手机APP的原理和一些网站资源。首先要明确的是,开发手机APP需要具备一定的编程经验和技能。你可以先学习一些编程语言,例如Java、Swift等等,这些语言都是
2023-06-05
自己开发有趣的app
开发一个有趣的应用程序并不一定需要高深的编程技巧或复杂的算法。好的应用程序应该能够满足人们的需求并且让人们感到愉快和有趣。因此,在开发一个有趣的应用程序之前,我们需要思考一些基本问题:我们希望实现的功能是什么?我们的目标受众是谁?应用程序的界面应该如何设计
2023-06-05
如何自己制作钢琴谱app
想要制作自己的钢琴谱app需要掌握一些技术知识和基本步骤。以下是一个基本的流程:1. 确定功能和用户界面设计: 首先,需要决定你的应用程序要提供什么功能,这将有助于确定应用程序的框架和功能模块。对你的目标用户进行研究,了解他们的需求和偏好,为他们提供具有吸
2023-05-30
恋与制作人自由聊天app
恋与制作人是一款集合了恋爱养成和音乐制作元素的手游,自推出以来广受欢迎。为了满足玩家更多需求,游戏开发方推出了相应的社交APP——恋与制作人自由聊天app。这款APP旨在让玩家更深入地了解游戏中的角色,以及与其他玩家互动交流。其原理是通过与游戏服务器相连接
2023-05-30
鸿蒙系统的app是自己开发的吗
鸿蒙系统(HarmonyOS)是华为自主研发的分布式操作系统。华为提出了“全场景智慧化战略”后,开始加大对鸿蒙系统的研发投入,旨在将其打造成一款全球领先、智能化的操作系统。在鸿蒙系统中,应用程序(App)使用的是HarmoyOS的全新应用框架,该框架包括了
2023-05-30
单词app可以自己做词集嘛
单词APP是一种非常流行的学习英语的方式,在这些应用程序中,用户可以通过各种方式学习英语单词、短语和句子,比如卡片背诵、单词游戏和阅读文章等等。但是,许多用户希望能够在这些应用程序中自己添加词汇和表达,以便更好地按照个人需求和兴趣学习英语。那么,单词APP
2023-05-30
程序员自己做app
在移动互联网时代,不管是找工作还是创业,学会开发APP都是非常有必要的一项技能。然而,对于许多人来说,不了解APP的开发流程和原理可能会感觉很困难。本文将详细介绍开发APP的原理和步骤。一、APP的类型APP主要分为原生APP、Hybrid APP和Web
2023-05-30
app开发怎么强制自身ui置顶
在Android应用程序开发中,UI界面的置顶操作是一个比较常用的操作,这个操作可以让应用程序的UI界面永远显示在最顶层,不受其他应用程序的干扰。下面将详细介绍在Android应用程序中如何实现UI界面的置顶操作。原理介绍:Android应用程序通过Act
2023-05-30
©2015-2021 自建app开发平台 www.appbyme.cn 蜀ICP备17005078号-1