开发版自启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放到远程服务器上。1. 获取服务器的IP地址或域名首先要获取自己远程服务器的IP地址或域名。IP地址是32位二进制数,
2023-06-05
自己做电台的app
随着移动互联网的普及,越来越多的人愿意通过手机收听电台节目。那么如何自己做一个电台的APP呢?这里提供一些基本的原理和介绍。1. 技术选型开发一个APP需要选择合适的技术栈。下面是一些主要的技术,用于开发一款自己的电台APP:- 前端框架:React Na
2023-06-05
自己制作教育app
制作教育App可以让学生在手机或平板电脑上就能获取知识,方便高效。本文将介绍制作教育App的原理和详细步骤。原理教育App主要运用了软件开发技术。具体来说,就是先设计App的用户界面,再加入所需的功能模块,最后进行调试。制作教育App的具体步骤如下:步骤一
2023-06-05
怎么开发自己的物流app
开发一个物流app需要考虑到以下几个方面:1. 业务模式设计首先需要了解物流行业的基本模式,包括快递、物流、货运、仓储等。然后针对自己的定位,确定自己的业务模式,目标人群和盈利模式。2. 技术选型在开发app之前,需要选择合适的技术和工具,根据自己的业务需
2023-06-05
想自己做一个app需要哪些软件
做一个app需要哪些软件?这个问题的答案其实并不简单。因为不同类型的app所需的开发工具和技能都有所差异。不过,一般来说,开发一款app需要以下几种软件和工具:1. 集成开发环境(IDE)在开发app时,必须使用一种集成开发环境(IDE,Integrate
2023-05-31
水果店自建app
随着科技的不断进步和发展,越来越多的企业和商家开始意识到移动应用程序的重要性,水果店也不例外。自建一个app可以提高店铺的口碑和知名度,同时提高销售额。下面将介绍水果店自建app的原理和详细信息。一、原理水果店自建app的基本原理是针对店铺的具体业务需求,
2023-05-31
如何自己做app并上线
在现代社会中,移动应用已经成为了人们重要的生活工具之一。这也催生了成千上万的开发者试图开发一款属于自己的 APP 并且上线。但是对于初学者而言,开发一个属于自己的 APP 并且上线是一件比较困难的事情,因此在下面的文章中将介绍如何自己做一款 APP 并且顺
2023-05-30
如何开发自己的生鲜配送app
随着人们生活水平的提高和生态环境的改善,人们对于生鲜产品更加注重和关注。而随着科技的发展,互联网技术的出现,生鲜配送业也得到了快速发展。如今,生鲜配送app已经成为人们生活中不可或缺的一部分。那么,如何开发自己的生鲜配送app呢?下面,就让我们一起来了解一
2023-05-30
如何制作自己的电影网站app
制作自己的电影网站App需要考虑多个方面,涉及到技术、设计和用户体验等方面。本文将从技术和原理两个方面来介绍制作电影网站App的方法。一、技术1.后端技术选型电影网站后端技术选型需考虑到速度、可扩展性、安全性和可维护性。对于小型项目来说,使用PHP或Rub
2023-05-30
免费自建淘宝客app
淘宝客是指通过推广淘宝商品获得佣金的一种方式,而自建淘宝客app可以让我们更加方便地推广淘宝商品并获得更多佣金。下面对此进行一些详细介绍。自建淘宝客app的原理是利用淘宝客API接口进行数据获取,并在app中进行展示和推广。API接口是淘宝客平台提供的开放
2023-05-30
测试自己适合做什么工作的app
测试自己适合做什么工作的app是一款基于个人兴趣、能力、性格特点等方面的分析对比,结合职业招聘网站和职业规划咨询服务,为用户提供职业匹配度评估和职业建议的移动应用。该应用的原理可以分成以下三个部分:1.个人信息采集:该应用采用问卷方式收集用户个人信息,包括
2023-05-30
diy手机桌面app自做教程
随着智能手机的普及,我们的手机桌面越来越重要,因为我们几乎所有的操作都需要通过桌面来完成。如今,随着移动端应用市场的繁荣,有很多种桌面应用可以让你将手机桌面个性化、美化、精简等,而且操作也非常简单。但是,如果你想把自己的创意随意地表现在桌面上,或者你特别讲
2023-05-30
©2015-2021 自建app开发平台 www.appbyme.cn 蜀ICP备17005078号-1