Android 9(P)中实现应用开机自启动(前台服务的方式)

文章目录

  • Android 9(P)中实现应用开机自启动(前台服务的方式)
    • 问题1:开机之后没有收到BOOT_COMPLETED广播
    • 问题2:启动APP时直接报错
    • 问题3:无法启动service
    • 问题4: 广播中启动activity 出现错误
    • 问题5:开机后屏幕熄灭状态下也无法启动后台service
    • 写在最后
》大体思路:1.Android 系统开机后会发送一条广播<action android:name="android.intent.action.BOOT_COMPLETED"/>2.应用收到广播后,启动相应的应用即可

问题1:开机之后没有收到BOOT_COMPLETED广播

可能情况:1.没有添加权限<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />2.应用程序安装后,从未启动过,这种情况是接收不到任何广播的。3.没有ui的应用必须通过其他应用激活才能启动
解决方案:1.添加权限;2和3 直接将应用 放到/system/app目录下即可,这种状态下, 应用会被自动安装也会收到广播即使没有启动过另外把app 放到/system/app目录下运行可能会遇到问题,可参考:

问题2:启动APP时直接报错

java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file “/system/app/xxxx.apk”],nativeLibraryDirectories=[/system/lib/xxxx, /system/app/xxxx.apk!/lib/armeabi-v7a, /system/lib, /system/lib]]] couldn’t find ‘xxx.so’

解决方案:参考
1.Android 运行崩溃找不到so包解决方案
2.Android 设备的CPU类型(通常称为”ABIs”)

问题3:无法启动service

java.lang.IllegalStateException: Not allowed to start service Intent

解决方案:参考
1.Android 8.0 后台执行限制
2.解决java.lang.IllegalStateException: Not allowed to start service Intent
3.Context.startForegroundService

问题4: 广播中启动activity 出现错误

java.lang.RuntimeException: Unable to start receiver com.aaa.bbb.BootBroadcastReceiver: android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?

解决方案:增加一个标志即可

intentActivity.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

参考:Caused by: android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity

问题5:开机后屏幕熄灭状态下也无法启动后台service

解决思路:收到广播后,将熄灭的屏幕点亮,如果有锁屏则在锁屏的之上启动应用

 getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);setShowWhenLocked(true);setTurnScreenOn(true);getSystemService(KeyguardManager.class).requestDismissKeyguard(this, new KeyguardManager.KeyguardDismissCallback() {@Overridepublic void onDismissError() {super.onDismissError();}@Overridepublic void onDismissSucceeded() {super.onDismissSucceeded();}@Overridepublic void onDismissCancelled() {super.onDismissCancelled();}});

参考:
1.android唤起app并点亮屏幕、覆盖锁屏显示
2.Android 屏蔽系统锁屏的方法
3.Android锁屏状态下弹出activity

写在最后

记录一下我在实现一个自动APP时遇到的问题

Android 9中实现应用开机自启动(前台服务的方式)相关推荐

  1. Android实现应用程序的开机自启动

    在Windows平台中我们一定知道很多程序会开机自启动,那么我们的android应用程序如何实现开机自启动的呢?其实非常的简单,只要用android的广播机制就可以了,因为当android系统启动的时 ...

  2. android软件自动启动软件下载,Android编程实现应用程序开机自启动的方法

    本文实例讲述了Android编程实现应用程序开机自启动的方法.分享给大家供大家参考,具体如下: Android在开机时自动启动一个应用程序 在启动时自动启动一个应用程序: 1.AndroidManif ...

  3. 配置群晖NAS中的cpolar开机自启动 2-2

     系列文章 做内网穿透外网远程访问群晖NAS 1-2 做内网穿透外网远程访问群晖NAS 2-2 如何在群晖NAS上安装cpolar内网穿透 配置群晖NAS中的cpolar开机自启动 1-2 配置群晖N ...

  4. 在linux中设置nexus开机自启动

    本篇讲一下在linux中设置nexus开机自启动 关于 在linux中安装nexus可以看下我之前写的另外一篇文章: 在linux上搭建maven私服nexus和nexus的使用 一.把nexus配置 ...

  5. win10中设置程序开机自启动

    win10中设置程序开机自启动

  6. android程序开机自启的方法,Android编程实现应用程序开机自启动的方法

    本文实例讲述了Android编程实现应用程序开机自启动的方法.分享给大家供大家参考,具体如下: Android在开机时自动启动一个应用程序 在启动时自动启动一个应用程序: 1.AndroidManif ...

  7. linux设置开机自启服务,linux设置服务开机自启动的三种方式

    linux设置服务开机自启动的三种方式 这里介绍一下linux开机自动启动的几种方法,共计3种,大家可以借鉴一下!经验里面以centos 5.3系统为例! 方法1:.利用ntsysv命令进行设置,利用 ...

  8. Android开发中怎样调用系统Email发送邮件(多种调用方式)

    在Android中调用其他程序进行相关处理,几乎都是使用的Intent,所以,Email也不例外,所谓的调用Email,只是说Email可以接收Intent并做这些事情 我们都知道,在Android中 ...

  9. android中资源文件的两种访问方式,在android开发中进行数据存储与访问的多种方式介绍...

    在android开发中进行数据存储与访问的多种方式介绍 更新时间:2013年06月07日 16:24:23   作者: 很多时候我们的软件需要对处理后的数据进行存储或再次访问,Android为数据存储 ...

  10. android studio中使用AIDL进行客户端与服务端互相通信

    前言 在AIDL实现IPC通信,调用远程服务端的方法.但是,远程服务端并不能主动给客户端返回信息.在很多情况下是需要远程服务端主动给客户端返回数据,客户端只需要进行监听即可,这是典型的观察者模式.这篇 ...

最新文章

  1. Alsa中PCM参数设置
  2. apollo报:系统出错,请重试或联系系统负责人
  3. mysql5.7.17 win7_win7下mysql5.7.17安装配置方法图文教程
  4. 电脑按f8无法进入安全模式_自已有电脑的人,都会遇到系统死机问题,教大家实用一招自已解决...
  5. 网卡是如何将包转换成电信号并发送到网线中的
  6. 【OCM】Oracle OCM11g考场合影~keep人生中重要时刻
  7. Java 匿名内部类、Java 中 == 与 equals 的区别
  8. python 爬虫生成csv文件和图_Python简单爬虫导出CSV文件的实例讲解
  9. 商场客流量统计摄像头设备
  10. pc端html转换手机端,一种兼容PC端和手机端WEB界面的实现方法与流程
  11. LSMW 批量更改BOM 成本核算标识相关标识 特殊处理
  12. java获取西瓜视频的下载地址
  13. 虚拟屏幕与云计算————微软亚洲研究院
  14. java通过ip地址获取相应对应的城市
  15. 黑马程序员视频教程学习mybatis框架常用注释SQL语句学习笔记?
  16. 如何使用 OpenShift Container Platform 的命令行工具 OC
  17. python 多线程卡死跳出_解决python线程卡死的问题
  18. 常用电商系统优劣势对比—管易云、远丰电商、电商宝、海商、旺店通ERP、百数
  19. 分享一些我的远程办公经验
  20. 七夕情人节520程序员表白html网页源码送女友男友礼物

热门文章

  1. System.Net.WebException: 基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系。 ---> System.Security.Authentication.Authe
  2. Markdown 语法手册 (完整整理版)转抄
  3. 从校园到职场 - 谈谈艺多不压身
  4. 程序员的简历应该如何写?(含模拟面试,持续更新)
  5. 使用canvas编写飞机大战游戏
  6. HTTP协议详解(一)
  7. Linux pwn入门教程,Linux PWN从入门到熟练
  8. btrfs和ntfs linux5,如何选择文件系统EXT4、Btrfs 和 XFS
  9. pcm数据编码成为aac格式文件(可以在酷狗播放)
  10. 手机无线设计的八个原则