码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【Android 应用】开机未解锁时,收发广播方法


    简介

    最近做了一个功能,通过hotkey发广播给到应用来通信。但是发现设置锁屏重启后,直接按hotkey,并不能启动应用。广播也没有接收到。

    分析

    1. 开机未完成,广播没有发送过来
    • 发现只要不解锁就是不能通过hotkey发送广播的方式唤醒广播接收应用
    • 直接使用命令也是不能成功的
    1. 没有发送成功
    2. 发送过来了,但是没有接收到

    收发导致的问题

    1. 默认情况下,如果系统版本是 Android 8.0 以上,则收不到。
    2. 如果是 Android 7.0,需要设置 directBootAware 为 true。
    3. 如果想在 Android 8.0 以上版本中收到
    • 接收方: 需要先设置 directBootAware
    • 发送方:广播发送时需要添加FLAG_RECEIVER_INCLUDE_BACKGROUND。
    1. 不管是什么版本,如果 BroadcastReceiver 所在的应用从来没有启动过(停止状态),则广播发送者需要额外添加 FLAG_INCLUDE_STOPPED_PACKAGES。

    解锁前使用SharedPreference

    解决方法:

    1. 设置targetSdk为小于26。但是我们的程序有很多要26以上的才能用,所以不可行

    2. 开机处于user locked状态时避免使用SharedPreference,这个也不可行。

    3. 系统应用可以设置android:defaultToDeviceProtectedStorage=”true”,我们的应用是系统应用,所以使用这个方案

    4. 补充
      在启用了 文件级加密FBE 的设备上,每位用户均有两个可供应用使用的存储位置:

    • 凭据加密 (CE) 存储空间:这是默认存储位置,只有在用户解锁设备后才可用。

    • 设备加密 (DE) 存储空间:在直接启动模式期间以及用户解锁设备后均可用。

    • 对于系统的应用,声明 android:defaultToDeviceProtectedStorage=”true” 可以把应用的默认存储空间设置为 /data/user_de/。因此,在用户没有输入凭据解密 CE 空间之前,系统只是加载 DE 下的应用。

    参考

    1. SharedPreferences in credential encrypted storage are not available until after user is unlocked
    2. Boot complete 之前无法接收广播吗

    侵删。

  • 相关阅读:
    TeamTalk中对一条连接收发消息的封装。
    Zabbix邮箱报警
    java计算机毕业设计开放式体育社区及论坛源码+系统+数据库+lw文档
    搭建vue3源码学习环境
    实现一个小功能,原生js点击图片上传图片并切换
    前端培训技术Webpack优化构建速度
    《文化相对论》圆满收官!思想交锋,文明互鉴!
    Java版本的工程项目管理系统源代码之工程项目管理系统面临的挑战
    VMware 系列:戴尔服务器配置(格式数据、RAID5、安装ESXI)以及相关问题
    Java.lang.Character类中isLowerCase()方法具有什么功能呢?
  • 原文地址:https://blog.csdn.net/twk121109281/article/details/127978449
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号