问题标签 [broadcastreceiver]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1941 浏览

android - android中相机按钮的ACTION_UP广播接收器

三星盖乐世,安卓 1.5。我试图检测用户何时释放相机按钮。我有一个接收器,它获取 ACTION_CAMERA_BUTTON 意图并检查它附带的 EXTRA_KEY_EVENT,使用以下代码(在接收器的 onReceive() 中)

当我按下按钮时,我只会得到“按下”弹出窗口。

这是手机还是安卓的限制?还有其他方法可以检测相机键的释放吗?

0 投票
1 回答
1167 浏览

android - 在android中收听硬按钮的广播接收器

android中是否有一个跨设备硬按钮,后台服务可以在按下/释放它时收听并采取行动?

谢谢

0 投票
4 回答
3603 浏览

android - Android - 无法启用广播接收器

升级到最新的 SDK 后,我回到了小部件开发,突然间我的小部件在启动时失败,并显示以下消息:

这是发生异常的两行代码:

所以在上面的代码startAlarm()中永远不会执行,因为pm.setComponentEnabledSetting()抛出了 SecurityException

我是否缺少清单中的任何安全设置?目前我有:

我正在开发SDK v. 1.5,它曾经工作正常

PS它发生在手机和模拟器上

0 投票
1 回答
1536 浏览

android - 如何在android中处理每天触发的警报

我想在我的应用程序中设置一个每天都会触发的警报。根据文档,我必须设置一个一次性警报,并在将接收警报信号的 BroadcastReceiver 中,重置第二天的警报。 那是对的吗 ?

我的 BroadcastReceiver 很好地处理了唤醒锁并启动了一个服务来释放这个唤醒锁。这里一切正常。

但是我有问题。在我的应用程序中有一个复选框,当警报响起时会选中它。要知道我的闹钟是否响起,我使用以下条件:

但这似乎不太好用,这是知道警报是否响起的好方法吗?

提前致谢

0 投票
1 回答
1925 浏览

android - Android - 将更改的数据从 BroadcastReceiver 传递到另一个对象?

我有一个 Wifi 类,它有几个广播接收器,用于监听 Wifi 连接状态、Wifi Rssi 级别等的变化......

我希望能够将这些数据传递给另一个“引擎”对象,并且仍然保持数据动态变化。

我目前在“Engine”类中创建了一个 Wifi 对象并运行它的方法,然后数据会在 log cat 的 Log 语句中动态显示。

我的问题是尝试将动态变化的数据获取到引擎,当我尝试获取数据时,它会获取第一个值并将其保留在该位置而无需更新。

所以我想知道我的选择是如何做到这一点的?

如果有任何帮助,以下是我当前的代码设置:

无线上网课

还有我的引擎代码:

所以我只是想知道当它从广播接收器接收到更改时,确保来自 Wifi 类的数据在引擎中不断更新的最佳解决方案是什么?

0 投票
3 回答
21404 浏览

android - 当用户关闭设备时,有什么方法可以接收通知?

我需要知道用户何时关闭他/她的手机。当用户的手机关机时,是否有任何广播(或类似的)通知?

0 投票
2 回答
1030 浏览

android - 如何在意图过滤器的数据标签中指定方案特定部分?

我想设置一个 BroadcastReceiver 来处理 PACKAGE_REPLACED,但我只想在我的包被替换时收到通知。如果我使用 scheme="package" 指定数据标签,它工作正常,但是当重新安装或升级任何应用程序时我会收到通知。我无法弄清楚我应该如何指定方案特定部分中的包名称 - 也就是说,当我的 BroadcastReceiver 在 onRecieve() 中获取意图时,如果我执行 intent.getData().getSchemeSpecificPart( ),这是包名,但有什么方法可以在我的意图过滤器中过滤吗?

0 投票
1 回答
3170 浏览

android - Android - 我可以向服务发送关于 Wifi 状态更改的意图吗?

每次 Wifi 连接状态发生变化时,我都想向我的服务发送一个意图。

因此,当我目前使用广播接收器来监听 Wifi 中的状态变化时,因此当接收到意图时,我希望能够将此信息发送到我的服务。

这是可能的,如果是这样的话,正确的方法是什么?

0 投票
2 回答
23675 浏览

android - 仅当它在前台时才从 BroadcastReceiver 通知 Activity

也许这很容易,但到目前为止我还不能真正弄清楚......我BroadcastReceiver等待被 AlarmMangager 触发 - 这很好用。

现在:因为该事件(如果发生)需要刷新主 Activity 屏幕上的某些元素,我想从该背景 BroadcastReceiver 向我的 Activity 发送一个 Intent -但前提是它当前位于前台,也就是活动的。

如果它没有运行或不可见,我不在乎 - 我想做的最后一件事就是按我的意图启动 Activity!我在 onResume() 方法中处理视图的重绘,所以我根本不在乎。

关于如何做到这一点的任何提示?谢谢!

编辑:我的 BroadcastReceiver 正在等待必须通知用户的警报。因此,它必须存在并在清单中声明。问题是:它必须决定所提到的 Activity 当前是否在前面。

0 投票
7 回答
66582 浏览

android - 如何确定我的一项活动是否在前台

我已经实现了一个由 AlarmManager 触发的 BroadcastReceiver。AlarmManager 在 BOOT_COMPLETED 上初始化。所以我必须在清单中声明接收者。

我的问题是我希望 BroadcastReceiver 只在我自己的活动都没有在前台时(也就是用户没有与我的应用程序交互)时做某事。我从远程服务器中提取信息,并且无论如何都不想通知用户他当前是否在我的应用程序中。

到目前为止,我还没有设法确定我的应用程序是否在前台。有没有办法做这样的事情?ActivityManager 告诉我我的应用程序是否正在运行,但不告诉我它是否在前台。

这个问题和这里描述的差不多:Inform Activity from a BroadcastReceiver ONLY if it is in the frontground

解决方案:

在评估了几个解决方案之后,我想快速概述一下我认为处理后台/前台活动的最佳方法。

首选方法是在活动的 onResume 方法中注册广播接收器,并在 onPause 上的活动中取消注册。任何服务或其他背景元素都需要发送带有特定操作的广播意图,您的活动将拦截该操作。

如果您的活动在前台,它将注册其意图接收器,并且能够直接处理从您的服务发送的意图。如果它不在前台,它将不会收到意图,但调用广播的服务将知道没有人拦截其广播意图,并且能够自行处理。例如,它可以启动所需的活动、显示通知等。