开发版自启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开发需要先获得相关部门的许可证,否则可能被视为犯罪活动而受到法律制裁。此外,建议不要开发涉及不道德、违法或可能损害他人隐私的应用程序。一般的情况下,自己做一个针对成人的羞事事APP,需要考虑如下步骤:1.确定需求:首先
2023-06-05
自己做的关于一款苏轼的app
我以自己做的一款苏轼的App为例,来介绍一下它的原理和详细功能。首先,这款App主要是为了方便喜欢苏轼文学的读者阅读和学习他的作品而设计的。它的主要功能包括:1. 苏轼作品的收藏和分类。用户可以浏览苏轼的不同作品,并将他们收藏在不同的分类下,如诗词、散文等
2023-06-05
自己开发的app 怎样分发
当开发人员完成自己的APP之后,需要将其分发给用户使用。在苹果和安卓这两个平台上,开发人员分别需要遵循不同的分发流程和规则。1. 苹果平台上的分发苹果平台上的APP分发主要分为两种方式:(1)App Store分发如果APP想要通过App Store来进行
2023-06-05
自己制作键盘皮肤好看的app
制作键盘皮肤的app可以让用户根据自己的喜好创作独一无二的键盘皮肤,并在自己的手机上使用。实现这个app的原理主要是通过开发一个集成了图像编辑器和键盘皮肤生成器的应用程序。这个应用程序将允许用户自定义键盘皮肤,包括修改背景颜色、添加图片、更改文本风格等等。
2023-06-05
自贡开发app犯法吗
自贡开发app并不犯法,但要注意遵守相关法律法规和规范。下面我们来详细介绍一下相关原理。首先,开发app属于软件开发,是一项普通的商业活动,其法律地位和其他普通商业活动并无不同,可以在符合国家相关法律法规的情况下进行。国家对于软件开发有一系列法律法规的规范
2023-06-05
如何自己做app流程
在今天的移动互联网时代,很多人都想要自己做一款自己的手机应用,不管是想用来服务于自己的生活,还是想创造自己的创业项目都是完全可以做到的。那么如何做一款自己的app呢?下面我们来一步一步地介绍做app的流程。第一步:确定app的目标在开始做app之前,第一步
2023-05-30
哪个手机app可以自己划线做笔记
现在我们使用手机的频率越来越高,而且手机app的数量也越来越多。但当我们使用手机时遇到一些需要记录的信息时,我们是否有一款自己划线做笔记的app呢?其实有,下面我来介绍几款常用的自己划线做笔记的app。一、NoteshelfNoteshelf是一款为iOS
2023-05-30
可以自己做实体书的app
如果你是一名爱好实体书的书迷,同时也擅长写代码,那么可以通过开发一款自己的实体书制作app,来满足个人需求或为他人提供服务。下面,我们就具体介绍一下如何开发这样一款app。1. 确定基本功能首先需要明确该app的主要功能,如选择书籍、编辑书籍内容、生成PD
2023-05-30
安卓开发自动打开app
在安卓开发中,我们常常需要让我们的应用程序自动打开特定的应用程序。比如,你的应用程序需要在每天早上7点自动打开某个音乐播放器,或者在特定的日期和时间自动打开某个闹钟应用程序。这个功能可以通过安卓系统中的“Intents”机制实现。Intents机制是安卓系
2023-05-30
ipad能够自己做笔记的app推荐
iPad作为一款强大的平板电脑,不仅仅可以用于娱乐和学习,还可以作为笔记本来使用。它的高清屏幕、轻巧的体积、高速的响应等特点,使得它成为了众多人的首选。笔记是我们日常生活和工作中必不可少的一部分。在这里,本文将会推荐几款高效、易用的iPad自己做笔记的应用
2023-05-30
app中使用自己开发的动态库
在开发app时,为了提高开发效率,我们通常会利用动态库的技术来构建应用,这样能够有效减少代码冗余,缩短开发周期。本文将为大家详细介绍在app中使用自己开发的动态库的原理和步骤。一、动态库的定义和作用动态库是指在程序运行期间才会加载并执行的库,也就是说在编译
2023-05-30
©2015-2021 自建app开发平台 www.appbyme.cn 蜀ICP备17005078号-1