BroadcastReceiver是一个响应系统范围广播公告的Android组件。
我创建了一个Android应用程序来监听传入的短信。我遇到的问题是它还会读取以前的短信。该应用程序的目标是从特定来源获取短信
应用程序启动时在BroadcastReceiver中接收广播Intent(监听哪个Intent?)
我正在尝试接收广播意图来检查当前正在启动哪个应用程序。 (为了发送通知/弹出窗口,提醒用户) 在我的清单文件中: 我正在尝试接收广播意图来检查当前正在启动哪个应用程序。 (为了发送通知/弹出窗口,提醒用户) 在我的清单文件中: <receiver android:name=".domain.background.receiver.OpenedApplicationBroadcastReceiver" android:exported="true"> <intent-filter> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </receiver> 并在接收器中做一些事情: class OpenedApplicationBroadcastReceiver : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { // do something if it is application xyz } } 但到目前为止这还不起作用。 但是我也很不知道要在我的<intent-filter>中放入什么才能接收这样的广播。 我需要更改什么才能使我的代码正常工作? 您可以为 ACTION_PACKAGE_ADDED 和 ACTION_PACKAGE_REPLACED 意图注册广播接收器。当安装或替换新软件包时,这些意图会被广播,这将告诉您正在启动应用程序。 @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action != null && (action.equals(Intent.ACTION_PACKAGE_ADDED) ||action.equals(Intent.ACTION_PACKAGE_REPLACED))) { String packageName = intent.getDataString(); Log.d("PackageChangeReceiver", "Package added/replaced: " + packageName); // You can check the package name to find which app is being launched } } 这应该在清单文件中完成。 <receiver android: name=".dBroadcastReceiver"> <intent-filter> <action android: name="android.intent.action.PACKAGE_ADDED" /> <action android: name="android.intent.action.PACKAGE_REPLACED" /> <data android: scheme="package" /> </intent-filter> </receiver>
当应用程序被终止且服务保持活动状态时,如何从广播接收器启动服务。 我的广播接收器: 公共类 NetworkChangeReceiver 扩展 BroadcastReceiver{ @覆盖 公开...
应用程序关闭时,BroadcastReceiver 不会启动活动
所以,今天我已经尝试了至少五个小时来实现这一目标,并且我已经尝试了在任何地方找到的任何解决方案。 我正在编写一个小时钟应用程序,使用 AlarmManager 使应用程序响铃......
有什么方法可以观察我的应用程序的设置更改吗?我的意思是用户可以在“设置”中更改的设置,特别是对于我的应用程序,例如电池优化、背景限制...
有没有办法通过 Android 服务监听音量变化并做出反应? 顺便说一句:即使在播放音乐时,Google 音乐应用程序如何允许用户控制媒体音量...
有人可以告诉我现在在 2024 年是否可以读取手机状态吗,因为我在 2023 年 10 月有一个广播监听器,它会监听正在执行的呼叫,并且一旦呼叫结束,它就会
使用 EncryptedSharedPreferences 时出现 ANR
我的应用程序广播接收器中收到 ANR。 从谷歌控制台登录 - 意图广播 { flg=0x14 cmp=in.medibuddy/.receivers.DailyInitHealthReceiver (有额外内容) } 最近我有
Android 上 BOOT_COMPLETED 和 QUICKBOOT_POWERON 之间的区别
我创建了 BroadcastReceiver 来安排我的服务每 30 秒执行一次。这是我在 AndroidManifest.xml 中的内容: 我创建了 BroadcastReceiver 来安排我的服务每 30 秒执行一次。这就是我在 AndroidManifest.xml 中的内容: <receiver android:name="MyScheduleReceiver" > <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <action android:name="android.intent.action.QUICKBOOT_POWERON" /> </intent-filter> </receiver> 现在效果很好,但只有在我添加了 QUICKBOOT_POWERON 操作之后。在此之前,我只有 BOOT_COMPLETED,当我在调试时重新启动模拟器或手机时,我的服务将永远不会启动。所以我的问题是这两者之间有什么区别以及何时使用它们? “冷”启动后收到Intent android.intent.action.BOOT_COMPLETED。 “重新启动”或“重新启动”后收到android.intent.action.QUICKBOOT_POWERON意图。 检查这里 这仅在 HTC 设备上需要,以支持其“快速启动”功能 <action android:name="android.intent.action.QUICKBOOT_POWERON" /> 这里是来自官方代码的完整代码 https://android.googlesource.com/platform/packages/apps/StorageManager/+/refs/tags/android-7.1.2_r8/AndroidManifest.xml <receiver android:name=".automatic.AutomaticStorageBroadcastReceiver" android:enabled="@bool/enable_automatic_storage_management"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <!-- This is required on HTC devices to support their "quickboot" feature --> <action android:name="android.intent.action.QUICKBOOT_POWERON" /> </intent-filter> </receiver> enter code here
CannotDeliverBroadcastException 在运行 Android 13 (API 33) 的三星设备上
我们从 Firebase 收到了很多关于此次崩溃的崩溃报告。 致命异常:android.app.RemoteServiceException$CannotDeliverBroadcastException:无法传递广播 在 android.app.
屏幕截图后从 BroadcastReceiver 更新 UI
我需要在截图发生后更新UI。 我尝试以编程方式在 MainActivity.java 的 onResume() 中创建 BroadcastReceiver,但由于某种原因它没有获取屏幕截图。 所以,我
在Kotlin中,如何从前台服务或BroadcastReceiver录制视频?
我的应用程序中有一个正在运行的前台服务和一个广播接收器,我想为想要解锁设备的人录制视频。我的 BroadcastReceiver 有标志“Intent.ACTION_SCREEN_ON...
清单; 清单; <receiver android:name=".services.SpeechBroadcastReceiver" android:exported="true"> <intent-filter> <action android:name="com.example.SPEECH_DETECTED"/> </intent-filter> </receiver> 班级; import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import com.example.assistant.MainActivity class SpeechBroadcastReceiver : BroadcastReceiver() { override fun onReceive(context: Context?, i: Intent?) { println("Gotcha") val intent = Intent(context, MainActivity::class.java) intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK context?.startActivity(intent) } } 打电话; val filter = IntentFilter("com.example.SPEECH_DETECTED") registerReceiver(broadcastReceiver, filter) //broadcastReceiver = SpeechBroadcastReceiver() 我在 onReceive 函数中看不到“Gotcha”消息。我在前台服务上调用它,因此我也尝试在主活动中调用它,但它无法像以前一样工作。怎么了? 根据注释掉的行,registerReceiver()和broadcastReceiver的实例化似乎顺序错误。接收器需要在注册之前实例化。如果此代码可以编译,那么您很可能正在处理与您想象的不同的接收器。
致命异常:MQTT 建议:当接收者未独占注册时,应指定 RECEIVER_EXPORTED 或 RECEIVER_NOT_EXPORTED 之一
致命异常:MQTT 建议: 当接收器没有专门为系统广播注册时,应指定 RECEIVER_EXPORTED 或 RECEIVER_NOT_EXPORTED 之一 我遇到致命异常
应用程序在尝试运行 AlarmManager 和 PendingIntent 时崩溃
我正在尝试运行我的应用程序,包含在 AlarmManager 中使用,但程序由于某种原因崩溃了。 这是具体代码: private void ScheduleNotification(通知通知,int延迟)...
Android 12 targetSDKVersion 31 挑战(广播接收器、待定意图)崩溃问题
以下是我迄今为止在操作系统版本为 Android 12 的手机上运行带有 targetSDKVersion 31 的 Android 应用程序时遇到的挑战 1)应用程序未上传到商店 错误:- 您上传了 A...
我试图在我的应用程序上发现可用的蓝牙设备,但它不起作用,我认为问题出在我的广播接收器上。有人可以告诉我这个广播记录有什么问题吗...
如何从Android BroadcastReceiver开始Flutter处理
要求 我想实现一个 Flutter 应用程序,它是: 在 Android 上由广播操作 ACL_CONNECTED 触发,然后 在 Dart 中处理有关已连接设备的信息 (Flutte...
正如标题所说,我的广播接收器从未被调用过。 我束手无策,我知道有 30.. 千篇关于此的帖子,我发誓我已经阅读了其中的大部分,并尝试了十几件事......
在 Android 13 (MIUI 14) 上,当应用程序未通过带有 USER_PRESENT 的 BroadcastReceiver 运行时,无法启动前台服务
如果应用程序尚未运行,我无法让我的接收器工作(如果它正在运行,则可以正常工作) 我也有同样的问题,意图 USER_UNLOCKED 我设法让接收器工作,当...