IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 关于开机启动 -> 正文阅读

[移动开发]关于开机启动

  1. 声明权限

    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
    
  2. 声明接收者

     <receiver android:name=".BootCompletedReceiver"
         android:enabled="true"
         android:exported="true">
         <intent-filter>
             <action android:name="android.intent.action.BOOT_COMPLETED" />
         </intent-filter>
     </receiver>
    
  3. 接收者实现类

    class BootCompletedReceiver : BroadcastReceiver() {
    
        override fun onReceive(context: Context, intent: Intent) {
            if (intent.action == Intent.ACTION_BOOT_COMPLETED) {
                startApp(context)
                Log.i("ABCD", "系统启动完成")
            }
        }
    
        /** 启动app */
        private fun startApp(context: Context) {
            val appContext = context.applicationContext
            val intent = Intent(appContext, MainActivity::class.java)
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
            appContext.startActivity(intent)
        }
    
    }
    

    完整示例代码:https://gitee.com/daizhufei/receive-boot-complete.git ,在公司的Android 7.1.1的手机试验,能成功监听到系统启动,并完成App的自动启动。需要注意的是,应用安装后,如果一次都没有启动过,关机重启后是监听不到系统启动事件的,必须手动启动过app之后,以后再启动系统时就可以监听到了。

  4. 不知道从哪个版本开始,虽然声明了监听开机启动的权限,但是安装后默认是没有此权限的,需要手动到设置中打开此权限,而且这个权限不在权限列表里面显示,单独放在一个地方进行开机启动的设置。如下(小米6 Android 9):
    在这里插入图片描述
    如上图红色框为开机启动开关,默认都是关的,需要手动打开才能监听到开机启动,在小米6 Android 9实验时,发现还要同时开启另一个权限“允许应用在后台弹出界面”,如下:
    在这里插入图片描述
    在小米11 pro Android 11中测试时,一样的设置,发现可以监听到系统启动,但是无法打开Activity。

在oppo A55 5G Android 11中,怎么设置都监听不到系统启动,实验时是使用目标版本为Android 11,不知道把目标版本设置低一些是否有影响。

  1. 如果是一个无启动Activity的应用,虽然也声明了相应的权限的接收者,但是无法接收到系统的启动。在公司Android 7.1.1的手机上试验的。即声明有Activity,但是没声明有启动类型的Activity就无法接收系统启动。
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-08-19 12:09:56  更:2021-08-19 12:10:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 10:07:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码