开发版自启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可以更加自由地掌控自己的内容和运营,同时也能够更好地实现用户化运营需求。下面将介绍一些自建频道App的原理和常用技术。一、自建频道App的原理1.
2023-06-05
自建支付app
随着移动支付的兴起,越来越多的人开始尝试自建支付app。自建支付app的原理其实很简单,就是利用第三方支付平台的接口,将接口嵌入到自己的app中,然后在自己的app中调用接口,实现支付功能。下面我将详细介绍如何自建支付app:1.选择支付平台首先我们要选择
2023-06-05
自建文档app推荐
自建文档app是非常有用的工具,它可以将你的笔记、文档、图片、草稿等资料整合在一起,方便你随时查看、编辑和分享。在这篇文章中,我将给大家介绍两种常见的自建文档app,简单讲解其原理和功能。1. NotionNotion是一款功能强大的笔记、任务清单、知识库
2023-06-05
自己做的app必须在手机上运行吗
当我们想要自己做一个应用(app)时,通常会想到在电脑上进行开发,但是最终的目的是要应用在手机上。那么,自己做的app必须在手机上运行吗?本文将对此问题进行探讨和解答。首先,让我们回顾一下app是怎么运作的。app的全称是Application,翻译过来就
2023-06-05
自学做笔记app
在日常学习、工作中,我们经常需要做笔记以便记录和回顾需要掌握的知识点和信息,而随着移动设备的流行,越来越多的人选择使用笔记app来进行笔记管理。那么,自学如何制作一款简单的笔记app呢?下面将介绍笔记app的一些基本原理和制作流程。1. 设计界面首先,需要
2023-06-05
自己开发简单的app软件
随着移动互联网的快速发展,越来越多的人开始利用自己的创意和技能,开发自己的移动应用程序。但是对于初学者来说,开发自己的应用程序是一项相对复杂的任务。在这篇文章中,我们将为大家介绍自己开发简单的app软件的原理和详细步骤。1. 制定应用程序的目标在开发应用程
2023-06-05
自动开发app
自动开发APP是一种基于现有代码库自动生成新应用程序的技术。这种技术可以大幅度提高开发速度和效率,从而降低开发成本。自动开发APP的原理是通过使用AI技术从现有的代码库中自动提取核心部分,然后根据用户需求,自动定制化生成新的应用程序。自动开发APP可以自动
2023-06-05
制作安卓手机自动化点击app
在日常使用手机过程中,我们经常需要进行一些重复性的操作,例如打开某个app、点击某个按钮、滑动页面等等,这些操作费时费力却又不能被避免。那么有没有什么方法可以使这些操作自动执行呢?答案是肯定的,通过制作一个安卓手机自动化点击app可以轻松解决这个问题。一、
2023-06-05
有什么app可以自己做主题
现在,很多人喜欢在手机上自定义主题。但是很多人不知道如何制作自己的主题。在这里,我们将介绍一些可以帮助你制作自己的手机主题的应用程序。以下是我们的推荐:1. KLWP (Kustom Live Wallpaper)KLWP 是一个非常强大的主题制作工具,可
2023-06-05
学校自己开发的管理app
近年来,随着技术的不断发展和普及,学校管理采用互联网化的方式已经变得越来越普遍。而学校自研管理app作为其中的代表,其优点不仅仅在于其可以针对校园管理实际需求进行定制开发,更在于它的学生信息集成、信息管理、共享等多重特性。下面,我将对学校自研管理app的原
2023-06-05
app开发找自由职业者可以吗知乎
在当今互联网时代,开发一款移动APP已经成为很多公司或企业的必须之举。随着移动APP市场的不断扩大和竞争的加剧,越来越多的公司选择向自由职业者寻求帮助,因为自由职业者通常能够更加专注于特定的开发项目,并具有更大的灵活性和响应能力。但是,如何有效地寻找合适的
2023-05-30
©2015-2021 自建app开发平台 www.appbyme.cn 蜀ICP备17005078号-1