启动/广播接收器重启问题

2024-02-14

这是一个相当常见的问题,但我失去了理智。我想我已经彻底满足了要求。我希望 BroadcastReceiver 在手机重新启动时执行某些操作。

我的广播接收器(用于启动):

public class BootReceiver extends BroadcastReceiver
{
    @Override
    public void onReceive(Context context, Intent intent)
    {
        Log.d("BootupReceiver", "Refreshing alarms.");
    }
}

在我的清单的“清单”标签中:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

在我的清单的“应用程序”标签中:

<receiver
    android:name=".receivers.BootReceiver"
    android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
    <intent-filter>
         <action android:name="android.intent.action.BOOT_COMPLETED"/>
    </intent-filter>
</receiver>

部署应用程序后,我将其关闭,然后手动重新启动。我不认为停止状态是一个问题。

此外

我尝试过这个怪物的各种组合:

<receiver
        android:name=".receivers.BootReceiver"
        android:permission="android.permission.RECEIVE_BOOT_COMPLETED"
        android:enabled="true"
        android:exported="true">
        <intent-filter android:priority="999">
            <action android:name="android.intent.action.BOOT_COMPLETED"/>
            <action android:name="android.intent.action.REBOOT"/>
            <category android:name="android.intent.category.DEFAULT"/>
            <category android:name="android.intent.category.HOME" />
        </intent-filter>
</receiver>

我还尝试在引用接收器名称时使用绝对包名称代替相对包名称。

我还创建了一个简单的独立应用程序,除了 MainActivity 和上面的 BroadcastReceiver 之外什么都没有,它正在工作(令人恼火)。

我已经在 Moto G 和三星 Galaxy Edge 7 上对此进行了测试。

是否存在 BootReceiver 无法启动的已知实例?我的代码有什么问题吗?

我发现了一个类似的问题未答复的 https://stackoverflow.com/questions/37005641/difficulties-with-android-alarm-manager-boot-complete.

EDIT

我还尝试使用 ads shell 手动触发 REBOOT 意图。仍然没有成功。

EDIT 2

根据要求提供完整清单。如果您看到已编辑,我刚刚删除了一些可能机密的内容。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.REDACTED.REDACTED">

<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

<application
    android:name=".REDACTEDApplication"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:largeHeap="true"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">

    <activity
        android:name=".ui.activities.SplashActivity"
        android:label="@string/app_name"
        android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>
    <activity
        android:name=".ui.activities.InitialActivity"
        android:screenOrientation="portrait"/>
    <activity
        android:name=".ui.activities.LoginActivity"
        android:screenOrientation="portrait"/>
    <activity
        android:name=".ui.activities.CreateAccountActivity"
        android:screenOrientation="portrait"/>
    <activity
        android:name=".ui.activities.MainActivity"
        android:screenOrientation="portrait"
        android:theme="@style/AppTheme.NoActionBar">
    </activity>
    <activity
        android:name=".ui.activities.VideoPlayerActivity"
        android:screenOrientation="landscape"/>
    <activity
        android:name=".ui.activities.DisclaimerActivity"
        android:screenOrientation="portrait"/>
    <activity
        android:name=".ui.activities.EPWebViewActivity"
        android:screenOrientation="portrait"/>
    <activity
        android:name=".ui.activities.EscapePlanActivity"
        android:screenOrientation="portrait"/>
    <activity
        android:name=".ui.activities.EscapeInfoActivity"
        android:screenOrientation="portrait"/>
    <activity
        android:name=".ui.activities.EscapeSessionActivity"
        android:screenOrientation="portrait"/>
    <activity
        android:name=".ui.activities.EscapeDetailActivity"
        android:screenOrientation="portrait"/>

    <meta-data
        android:name="io.fabric.ApiKey"
        android:value="REDACTED"/>

    <activity
        android:name=".ui.activities.RemindersActivity"
        android:screenOrientation="portrait">
    </activity>

    <receiver android:name=".receivers.NotificationsReceiver"/>

    <receiver
        android:name=".receivers.BootReceiver"
        android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED"/>
        </intent-filter>
    </receiver>

</application>

EDIT 3

我尝试添加另一个接收器,但让 Android Studio 生成它。还是没有运气。

使用 ADB Shell 专门在应用程序中触发 BOOT_COMPLETED。那里也没有成功。


清理、重建并重新生成 APK 后,它现在可以工作了。我不确定 Studio 是否缓存了旧的 APK,或者我是否误解/搞乱了常规构建,但接收器现在正在工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

启动/广播接收器重启问题 的相关文章

  • Android Gradle 问题 - Flutter / Dart

    我的 Gradle 同步有问题 我使用 IntelliJ 和 Android Studio 构建 Flutter Dart 应用程序 我添加了 2 个新的依赖项 现在 Gradle 出现了问题 在 Android Studio 中一切正常
  • Android 无法解析日期异常

    当尝试解析发送到我的 Android 客户端的日期字符串时 我得到一个无法解析的日期 这是例外 java text ParseException 无法解析的日期 2018 09 18T00 00 00Z 位于 偏移量 19 在 java t
  • 如何在java中将日期格式从YYMMDD更改为YYYY-MM-DD? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我从机器可读代码中获取日期格式为 YYMMDD 如何将其更改为 YYYY MM DD 例如我收到 871223 YYMMDD 我想把它改成
  • 如何仅从 Firestore 获取最新更新的数据?

    在 Firestore 上发现任何更改时始终获取整个文档 如何只获取最近更新的数据 这是我的数据 我需要在第一次加载时在聊天中按对象顺序 例如 2018 09 17 30 40 msg和sendby 并且如果数据更新则仅获取新的msg和se
  • 将人类日期(当地时间 GMT)转​​换为日期

    我正在服务器上工作 服务器正在向我发送 GMT 本地日期的日期 例如Fri Jun 22 09 29 29 NPT 2018在字符串格式上 我将其转换为日期 如下所示 SimpleDateFormat simpleDateFormat ne
  • 在Java中运行bat文件并等待

    您可能会认为从 Java 启动 bat 文件是一项简单的任务 但事实并非如此 我有一个 bat 文件 它对从文本文件读取的值循环执行一些 sql 命令 它或多或少是这样的 FOR F x in CD listOfThings txt do
  • Jetpack Compose 中复选框中的透明复选标记

    在我的 Compose 应用程序中 我需要创建一个圆形复选框 我已经通过下面的代码实现了这一点 Composable fun CircleCheckBox isChecked Boolean modifier Modifier Modifi
  • 如何将 HTML 链接放入电子邮件正文中?

    我有一个可以发送邮件的应用程序 用 Java 实现 我想在邮件中放置一个 HTML 链接 但该链接显示为普通字母 而不是 HTML 链接 我怎样才能将 HTML 链接放入字符串中 我需要特殊字符吗 太感谢了 Update 大家好你们好 感谢
  • 在 Java 中获取并存储子进程的输出

    我正在做一些需要我开始子处理 命令提示符 并在其上执行一些命令的事情 我需要从子进程获取输出并将其存储在文件或字符串中 这是我到目前为止所做的 但它不起作用 public static void main String args try R
  • JDBC 时间戳和日期 GMT 问题

    我有一个 JDBC 日期列 如果我使用 getDate 则会得到 date 仅部分2009 年 10 月 2 日但如果我使用 getTimestamp 我会得到完整的 date 2009 年 10 月 2 日 13 56 78 890 这正
  • hibernate 6.0.2.Final 和 spring boot 2.7.0 的entityManagerFactory bean 未配置问题

    所以最近我想升级我的 Spring Boot 项目项目的一些依赖项 特别是这些组件 雅加达 EE 9 弹簧靴2 7 休眠 6 0 2 Final 完成此操作后 所有更新和代码折射 更新将 javax 导入到 jakarta 以及一些 hib
  • Spring @Cacheable 和 @Async 注解

    我需要缓存一些异步计算的结果 具体来说 为了克服这个问题 我尝试使用 Spring 4 3 缓存和异步计算功能 作为示例 我们采用以下代码 Service class AsyncService Async Cacheable users C
  • 在android中从SD卡上传图像到facebook

    我无法从 SD 卡上传 Facebook 上的图像 我使用了下面的代码 但它没有给我错误 但同时它没有上传图像 byte data null try FileInputStream fis new FileInputStream filep
  • 部署 .war 时出现 Glassfish 服务器错误:部署期间发生错误:准备应用程序时出现异常:资源无效

    我正在使用以下内容 NetBeans IDE 7 3 内部版本 201306052037 爪哇 1 7 0 17 Java HotSpot TM 64 位服务器虚拟机 23 7 b01 NetBeans 集成 GlassFish Serve
  • 在 Spring 上下文中查找方法级自定义注释

    我想知道的是 所有的类 方法Spring http en wikipedia org wiki Spring Framework注释为 Versioned的bean 我创建了自定义注释 Target ElementType METHOD E
  • 将 JScrollPane 添加到 JFrame

    我有一个关于向 Java 框架添加组件的问题 我有一个带有两个按钮的 JPanel 和一个添加了 JTable 的 JScrollPane 我想将这两个添加到 JFrame 中 我可以将 JPanel 添加到 JFrame 或将 JScro
  • 如何模拟ARM处理器运行环境并加载Linux内核模块?

    我尝试加载我的vmlinux into gdb并使用 ARM 内核模拟器 但我不明白为什么我会得到Undefined target command sim 这是外壳输出 arm eabi gdb vmlinux GNU gdb GDB 7
  • ARM Chromebook 上的 Android 开发环境?

    我尝试了多次安装和使用安卓工作室 https developer android com studio index html on an ARM Chromebook C100P https archlinuxarm org platfor
  • View.post(),以及当Runnables被执行时

    我最初的问题是需要知道我的根的高度和宽度View这样我就可以进行程序化的布局更改 就我的目的而言 我不一定需要在onCreate 对于我来说 以编程方式添加我的孩子就足够了View根布局完成后 因此我很乐意使用onWindowFocusCh
  • Java 和/C++ 在多线程方面的差异

    我读过一些提示 多线程实现很大程度上取决于您正在使用的目标操作系统 操作系统最终提供了多线程能力 比如Linux有POSIX标准实现 而windows32有另一种方式 但我想知道编程语言水平的主要不同 C似乎为同步提供了更多选择 例如互斥锁

随机推荐

  • 根据实体框架导航属性中的项目计数对绑定的 ASP.NET GridView 进行排序

    我有一个 ASP NET 页面 其中有一个绑定到 EntityDataSource 的 GridView 控件 请参阅下面的简化代码 网格显示了一个列表Parent项目并包括一个显示 Count 的列Children对于这位家长 我可以让网
  • PHP ImageMagick setColorspace 不起作用[重复]

    这个问题在这里已经有答案了 我正在尝试通过使用以下代码更改色彩空间来将图像转换为黑白图像 im new Imagick image png im gt setImageColorspace Imagick COLORSPACE GRAY i
  • Aurelia Typescript 项目仅适用于 Chrome

    有谁知道为什么列出 Aurelia Typescript 项目在这个 git 存储库中 https github com cmichaelgraham aurelia typescript只能在 Chrome 浏览器上使用吗 是否存在目前仅
  • 自引用结构定义?

    我写 C 的时间不长 所以我不确定应该如何做这些递归的事情 我希望每个单元格包含另一个单元格 但我在 字段 child 的类型不完整 行 这是怎么回事 typedef struct Cell int isParent Cell child
  • ActionCable:如何使用动态通道

    我用 Rails 5 和 ActionCable 构建了一个简单的聊天 其中有一个简单的 聊天 频道 如何使频道订阅和消息广播动态化 以便我可以创建聊天频道并将消息发送到正确的频道 不幸的是 我找不到这方面的单个代码示例 Update 下面
  • Sqoop 自由格式查询导致 Hue/Oozie 中的参数无法识别

    我正在尝试使用自由格式查询运行 sqoop 命令 因为我需要执行聚合 它作为 Oozie 工作流程通过 Hue 界面提交 以下是命令和查询的缩小版本 处理命令时 query 语句 用引号引起来 会导致查询的每个部分被解释为无法识别的参数 如
  • Flutter:垃圾收集 - 如何检查?

    在 Flutter 中 如何检查我是否正确释放 处置 所有内容 我正在构建一个应用程序 我感觉模拟器在一系列热重载后变得越来越慢 非常感谢您的回答 Dart 带有一个名为的调试器Observatory 它可以满足您所需的一切 从 CPU 内
  • 如何使用 Java 8 Streams 按对象属性分组并映射到另一个对象?

    假设我有一组碰碰车 它们的侧面有尺寸 颜色和标识符 汽车代码 class BumperCar int size String color String carCode 现在我需要将碰碰车映射到List of DistGroup对象 每个对象
  • HTML 5 音频当前位置

    将 HTML 5 与 DOM 一起使用 有没有办法获取用户正在播放音频文件的当前位置 并在稍后返回到该位置 See the HTML媒体元素 http dev w3 org html5 spec Overview html htmlmedi
  • 使用 **kwargs 将 **kwargs 参数传递给另一个函数

    我不明白下面的例子 假设我有这些功能 python likes def save filename data kwargs fo openX filename w kwargs lt 1 fo write data fo close pyt
  • Omniauth-facebook 登录无法正常工作

    当我尝试使用omniauth facebook 登录我的Rails 应用程序时 出现以下错误 这是在 localhost 3000 上测试时 不安全登录被阻止 您无法从不安全页面获取访问令牌或登录此应用程序 尝试将页面重新加载为 https
  • 命令设计模式 - 调用者是可选的吗?

    Command 设计模式中 Invoker 类是可选的吗 客户端需要实例化命令的具体命令和接收器 客户端是否总是需要实例化 Invoker 并将命令对象传递给 Invoker 对象 稍后 每当客户端需要执行命令时 客户端只需询问 Invok
  • FizzBu​​zz 列表理解

    当我学习 python 时 我正在摆弄一些不同的 fizzuzz 脚本 我发现这个效果很好 但我无法破译它是如何工作的 我知道正常的嘶嘶声如何与 for 循环和 if i 3 0 and i 5 0 一起工作 让我困惑的是如何 Fizz n
  • 批处理文件创建另一个批处理文件,如何在写入行时忽略命令?

    我正在编写的 Windows 批处理文件遇到了一些问题 我需要批处理文件将一些特定行写入另一个批处理文件 我一直使用的方法是 type NUL gt batchfile bat ECHO texttobewrittentofile gt g
  • Spark 2.x 的 Spark.sql.crossJoin.enabled

    我正在使用 预览 Google DataProc Image 1 1 和 Spark 2 0 0 为了完成我的一项操作 我必须完成笛卡尔积 从2 0 0版本开始 创建了一个spark配置参数 spark sql cross Join ena
  • Perl 抛出“参考键是实验性的”

    开发环境为OS X 10 10 3 Perl v This is perl 5 version 18 subversion 2 v5 18 2 built for darwin thread multi 2level with 2 regi
  • lambda 表达式中的枚举的编译方式不同;重载解析改进的结果是什么?

    在尝试 Visual Studio 2015 RC 时 我收到了先前工作代码的运行时错误 给定 lambda x gt x CustomerStatusID CustomerStatuses Active 它被传递给一个函数作为Expres
  • 在 Google Market 上发布一款应用的多个版本

    我有一个 Android 应用程序 我想用它来显示高质量的图像 然而 有许多不同的屏幕尺寸和比例 我知道有一些过滤器可以在市场中显示仅适用于小 中 大屏幕设备的应用程序 如果我将两种尺寸的图像放入 1 个应用程序中 应用程序的大小将会增加一
  • 在 RSA 下解码有效负载后未获得相同的会话密钥

    使用以下使用 crypto 库的函数对其进行编码和解码后 我没有获得相同的会话密钥 CryptoPP RSA PrivateKey RSA master privKey CryptoPP RSA PublicKey RSA master p
  • 启动/广播接收器重启问题

    这是一个相当常见的问题 但我失去了理智 我想我已经彻底满足了要求 我希望 BroadcastReceiver 在手机重新启动时执行某些操作 我的广播接收器 用于启动 public class BootReceiver extends Bro