问题标签 [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.
android - Android 侦听/检测日志条目
是否可以监听日志条目?即附加日志条目时是否有广播意图?
android - 在 Android 中实现 Google 语音操作
如何Voice Actions
在 Android 中实现来自 Google 的相当新的功能?
我正在考虑听Listen to
一些音乐应用程序使用的动作的可能性。
我的应用程序是否必须注册为接收器才能进行特定的广播?
android - Android广播接收器错误:找不到类异常
我有一个广播接收器设置,以便在每次升级我的应用程序后向用户显示一条弹出消息,或者如果这是第一次安装包。我在运行 Android 2.2 的 Droid 上进行了测试,无论是作为全新安装还是在升级我的应用程序后,以及在运行 1.5 和 1.6 的模拟器中,我发现一切运行良好。
但是,我收到了一个用户的错误报告,其中列出了以下异常:
有人能告诉我为什么我的一个用户收到了这个例外吗?
在我的清单文件中,我有这样的设置:
FirstRunBroadcastReceiver 类的设置如下:
在第一次安装时,设置了共享首选项的默认值,以便显示弹出消息,但我认为这与此异常无关。
我再次测试它,我没有收到异常。感谢您的任何帮助,您可以提供。
android - Android:检测到另一个应用程序已开始播放音频
我的音乐应用程序不断在后台播放音乐,但是我希望能够检测到另一个应用程序何时开始播放音频(例如 YouTube 应用程序),以便我可以在我的应用程序中暂停/静音/停止音频。
这将允许用户在听音乐的同时继续浏览网页,但是如果他们希望在任何时候观看视频,他们可以这样做而不会发生音频冲突。
一种解决方案可能是侦听广播,该广播说明应用程序何时开始使用 AudioManager。这样的意图动作是否存在?
编辑:正如在下面提供的答案中,似乎有一种方法可以检测 2.2 中音频焦点的丢失AudioManager.OnAudioFocusChangeListener
。
很好,但是对于更常见的 Android 版本有解决方案吗?理想情况下 1.5+。
android - 可以不在清单中注册 ACTION_USER_PRESENT 广播接收器吗?
我看到多个广播(例如ACTION_TIME_TICK)无法在清单中注册,必须通过Context.registerReceiver()
. 我在ACTION_USER_PRESENT广播意图方面遇到问题。具体来说,我在模拟器上进行测试,我的应用程序会因错误而强制关闭:
这是由
我的清单相当简单:
有什么想法吗?我实际上是在尝试创建一个在我的应用程序安装后尽快唤醒的接收器。第一次被唤醒时,它会注册一些监听器,然后它会注销自己,因此它不再被调用。(我真的希望在安装您的应用程序后立即触发一个意图,以便进行一些设置:))
android - Android广播接收器似乎已停止工作
我目前正在开发一个使用 abroadcastreceiver
来检查传入短信的应用程序,但突然间它似乎停止工作了,我什至编写了一个小型测试应用程序,至少对我来说,它在语法上似乎是正确的,但也是不工作。
以下是来自测试项目的代码:
清单:
广播接收器:
主要活动:
据我所知,我没有做错任何事,但显然我是!
java - 广播接收器作为Android中的内部类
在我的代码中有一个扩展的内部类BroadcastReceiver
。
我已将以下行添加到AndroidManifest.xml
:
但我收到以下错误:
无法实例化接收器 org.example.test.OuterClass$InnerClass
我该如何解决这个问题?
android - android 在已删除的包中没有收到 Intent ACTION_PACKAGE_REMOVED
当我的 android 应用程序被删除时,我还想删除该应用程序在 SD 卡上创建的文件,因为这些文件可能会消耗很多兆字节并且仅对我的应用程序有用。
似乎接收 PACKAGE REMOVED 意图将是执行此操作的地方。但是,我的广播接收器从未被调用——它似乎在发送 PACKAGE REMOVED 意图之前已被删除
代码是:
并且,在清单中:
android - 我如何从另一个 Android 应用程序请求信息?
我需要第三方应用程序(“Foo”)从我的应用程序(“Bar”)获取信息,但到目前为止我的解决方案似乎很麻烦:
- 应用程序 Foo 需要来自 Bar 的信息并发送一个广播(“bar.POLL”)。
- Application Bar 监听这个广播,并回复另一个广播(“bar.PUSH”);
- Foo 监听 bar.PUSH 并读取包含的 Bundle 的内容。
有没有更直接的方法来做到这一点?
编辑:我用一个非常简单的 ContentProvider 解决了它,正如Guido建议的那样:
请记住将提供程序添加到清单中:
像这样从 Activity 更新状态:
在外部应用程序中从提供程序获取内容:
android - BroadcastReceiver 的 Manifest 和 Programmatic 注册的主要区别
我试图了解在 Manifest 中注册 BroadcastReceiver 和以编程方式注册之间的主要区别......
我的理解基本上如下(如果我遗漏了什么,将不胜感激有人纠正我的观点)。
在清单中注册:
- 如果需要,操作系统会神奇地找到并实例化你的类,调用 onReceive() 方法,不管你的应用程序的运行状态是什么
- 您的接收只会在每个广播中被调用一次(即您可以认为在清单中注册就像注册您的“类”以接收广播 - 并且广播会根据需要实例化您的类)(??)
以编程方式注册:
- 在代码中注册意味着您正在注册您的类的实例以接收广播消息(即,如果您的代码有点草率,并且您设法注册了多次,您最终会得到多个 BroadcastReceiver 实例,它们都调用了 onReceive()广播
- 要注销,您需要注销您之前注册的特定 BroadcastReceiver 实例
- 如果您的应用程序被操作系统破坏,您的 onReceive() 方法将不会被调用以进行广播
谢谢