处理 Android 锁屏上的音量变化?

2024-05-21

我想做的是,能够在 android 4.4 上的锁屏上捕获音量增大/减小按钮操作。

Google Cast 设计清单 https://developers.google.com/cast/docs/design_checklist#sender-control-lockscreen文档描述了锁屏要求“通过硬件按钮提供对音量控制的访问”。我尝试了各种方法来处理锁定屏幕上的硬件音量按钮,但没有一个起作用。

  1. onKeyDown/dispatchKeyEvent- 我尝试重写 Activity 上的 onKeyDown 和dispatchKeyEvent 方法,但这些方法都不会在锁屏上执行,这些方法仅在我的应用程序聚焦时才有效。

  2. 设置.System.CONTENT_URI/ContentObserver- 在主活动的内容解析器上注册内容观察器确实可以捕获系统设置更改,但这也不会发生在锁屏上。

  3. android.intent.action.MEDIA_BUTTON- 清单中包含此过滤器,我可以从锁屏接收播放/暂停操作,但没有音量更改事件。

  4. android.media.VOLUME_CHANGED_ACTION- 在清单中包含此过滤器后,我的 BroadcastReceiver 中会收到此事件,不幸的是,它的额外值永远不会在锁定屏幕上更改。当我不断点击音量按钮时,返回的 android.media.EXTRA_VOLUME_STREAM_VALUE 保持不变(即始终为 1),即使我的广播接收器收到了 CHANGED 操作。

  5. CastVideos-android- 参考 Android 发送器应用程序似乎能够控制接收器上的音量,即使从发送器锁定屏幕进行控制也是如此,但是即使在 Cast.CastApi.setVolume() 周围放置断点之后,这些也不会被选中。所以看来该命令是从我无法找到的地方发送到接收器的。

我还可以看到其他一些应用程序能够捕获硬件音量键,即播放音乐应用程序。所以我的设备肯定有能力...

谁能建议任何可行的解决方案?


您需要使用 RemoteControlClient(在棒棒糖之前)或最近引入的 MediaSession。举个例子,看看CastCompanionLibrary, VideoCastManager#setUpRemoteControl()方法其中 RCC 注册到MediaRouter。如果使用MediaSession,那么你需要注册 MediaSessionMediaRouter.

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

处理 Android 锁屏上的音量变化? 的相关文章

  • Android Studio 3.0 Canary 9 - 无法解析包

    我在 Android Studio 3 0 Canary 9 中遇到几个错误 这些错误是 无法解析 android 软件包 下面列出了一些错误 我刚刚安装了 SDK 的所有额外软件包 但仍然收到 gradle 构建错误 Error 82 1
  • StrictMode 策略违规:我的应用程序中存在 android.os.strictmode.LeakedClosableViolation?

    Android 开发新手 第一次在我的应用程序上尝试 StrictMode 我注意到以下内容 并想知道这是否是我的应用程序或库中的问题 我不太清楚 谢谢你 D StrictMode StrictMode policy violation a
  • SearchView过滤ListView

    我已经实现了搜索视图来过滤我的列表视图项目 当我输入任何文本时 它会过滤列表 但当我退出搜索视图时 它不会返回原始列表项 public class PlacesListAdapter extends ArrayAdapter
  • Android 后退按钮无法与 Flutter 选项卡内的导航器配合使用

    我需要在每个选项卡内有一个导航器 因此当我推送新的小部件时 选项卡栏会保留在屏幕上 代码运行得很好 但是 android 后退按钮正在关闭应用程序而不是运行 Navigator pop import package flutter mate
  • 当文本输入聚焦在 React Native for Android 的底部工作表上时,视图移出屏幕

    我正在使用图书馆 https github com osdnk react native reanimated bottom sheet https github com osdnk react native reanimated bott
  • 在画布上绘图

    我正在编写一个 Android 应用程序 它可以在视图的 onDraw 事件上直接绘制到画布上 我正在绘制一些涉及单独绘制每个像素的东西 为此我使用类似的东西 for int x 0 x lt xMax x for int y 0 y lt
  • Android 模拟器插件无法初始化后端 EGL 显示

    我在 Cloudbees 上设置了 Jenkins 作业 并且可以在那里成功签出并编译我的 Android 项目 现在我想在 android 模拟器中运行一些 JUnit 测试并添加 Android 模拟器插件 我将 显示模拟器窗口 选项设
  • Android 中 Kotlin 协程的正确使用方式

    我正在尝试使用异步更新适配器内的列表 我可以看到有太多的样板 这是使用 Kotlin 协程的正确方法吗 这个可以进一步优化吗 fun loadListOfMediaInAsync async CommonPool try Long runn
  • 如何使用 Cordova 获取当前安装的应用程序的版本?

    我已经找到了应用程序可用性插件 https github com ohh2ahh AppAvailability它主要检查用户是否在其设备上安装了某个应用程序 是否有可能获得应用程序的当前版本 开发者名称 重要 以及所有可能的信息 一般来说
  • Android MediaExtractor seek() 对 MP3 音频文件的准确性

    我在使用 Android 时无法在eek 上获得合理的准确度MediaExtractor 对于某些文件 例如this one http www archive org download emma solo librivox emma 01
  • 控制Android的前置LED灯

    我试图在用户按下某个按钮时在前面的 LED 上实现 1 秒红色闪烁 但我很难找到有关如何访问和使用前置 LED 的文档 教程甚至代码示例 我的意思是位于 自拍 相机和触摸屏附近的 LED 我已经看到了使用手电筒和相机类 已弃用 的示例 但我
  • 发布android后更改应用内购买项目的价格

    在 Google Play 上发布后 是否可以更改应用内购买商品的价格 我假设该应用程序也已发布 完整的在线文档位于http developer android com http developer android com也http sup
  • JavaMail 只获取新邮件

    我想知道是否有一种方法可以在javamail中只获取新消息 例如 在初始加载时 获取收件箱中的所有消息并存储它们 然后 每当应用程序再次加载时 仅获取新消息 而不是再次重新加载它们 javamail 可以做到这一点吗 它是如何工作的 一些背
  • 如何默认在 ActionOpenDocument 意图中显示“内部存储”选项

    我需要用户选择一个自定义文件类型的文件 并将其从 Windows 文件资源管理器拖到 Android 设备上 但默认情况下内部存储选项不可用 当我使用以下命令启动意图时 var libraryIntent new Intent Intent
  • 在两个活动之间传输数据[重复]

    这个问题在这里已经有答案了 我正在尝试在两个不同的活动之间发送和接收数据 我在这个网站上看到了一些其他问题 但没有任何问题涉及保留头等舱的状态 例如 如果我想从 A 类发送一个整数 X 到 B 类 然后对整数 X 进行一些操作 然后将其发送
  • 错误:在根项目“projectName”中找不到项目“app”

    我有一个在 Eclipse 中开发的旧应用程序 现在尝试将其迁移到 Android Studio 我更新了库并遵循了基本步骤 现在 我收到此错误 Error Project app not found in root project pro
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • 如何根据 gradle 风格设置变量

    我想传递一个变量test我为每种风格设置了不同的值作为 NDK 的定义 但出于某种原因 他总是忽略了最后味道的价值 这是 build gradle apply plugin com android library def test andr
  • 在activity_main.xml中注释

    我是安卓新手 据我所知 XML 中的注释与 HTML 中的注释相同 使用 形式 我想在 Android 项目的 Activity main xml 配置文件中写一些注释 但它给了我错误 值得注意的是 我使用的是 Eclipse 但目前 我直
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591

随机推荐

  • 从数组中检索均匀分布的元素数

    我知道如何提取数组中的每个第 n 项 但我遇到的困难如下 如何从 1800 个元素的数组中提取第 n 个项目 始终包括第一个和最后一个元素 总共最多 256 个元素 Example array 1 2 3 4 5 6 7 8 9 10 提取
  • 知道何时调用 persist

    我正在使用 Doctrine 2 作为我的 ORM 一切进展顺利 但我一直想知道EntityManager persist 方法 这 持久实体 https www doctrine project org projects doctrine
  • TCPDF / FPDI 可以接受 PDF 作为字符串吗?

    是否可以将 TCPDF 或 FPDI PDF 作为字符串提供 我有一个传入的 PDF 数组作为字符串 但无法写入磁盘 我在文档中找不到与此相关的任何内容 如果没有 是否有一种有效的方法来从内存或作为对象存储 读取这些 PDF 将它们喂给 F
  • 无法访问 keycloak 其余 API 方法 *404*

    我正在 docker 中使用最新的 keycloak 映像 并且可以访问标准管理控制台http 本地主机 9080 http localhost 9080 但是 我似乎无法访问中指定的任何路径文档 http www keycloak org
  • Java 环境变量设置正确,但 java 找不到 jar

    Summary Java 环境变量设置正确 从 echoing 可以看出 但是 仅当明确包含在 javac 命令中时才能看到 jar Details 这与图形和OpenGl没有具体关系 肯定问题与类路径有关 即第三方的导入jar files
  • 如何使用 JSHint 配置 Syntastic?

    如何使用 Syntastic Vim 插件和 JSHint 来验证 JavaScript 代码 环境 乌班图11 04 VIM Vi 改进 7 3 我已经安装了 按照解决方案VIM JSLint https stackoverflow co
  • 求列表中某列的总和,出现“TypeError:无法使用灵活类型执行reduce”

    所以我对 python 很陌生 并且已经搜索过这个答案 但大多数答案都超出了我的理解范围 我有一个这样的列表 right point point 1 76999998093 right fear fear 1 62700009346 rig
  • 如何在Jquery-Select2中设置多值选择中的选定值?

    我正在绑定我的下拉菜单Jquery Select2 它工作正常 但现在我需要绑定我的多值selectBox通过使用Jquery Select2 我的下拉菜单 div class divright div
  • 即使光标位于画布之外也会调用 MouseMove 事件

    我不知道我的代码或 WPF 是否有问题 但问题是 我想创建一个小程序 您可以在其中用光标在画布上绘图 我有一个简单的 WPF 窗口
  • Delphi 7 - 处理表单中嵌入框架的 MouseWheel 事件?

    你好 我有一个表格 里面有几个框架 对于某些框架 我希望滚动内容 或至少处理鼠标滚轮事件 我已经尝试过以下方法 只需为每个帧分配一个 OnMouseWheel 事件处理程序 重写父窗体的 MouseWheel 事件 procedure TF
  • 不同 Android 设备上 box2D 中出现奇怪的“口吃”

    我正在用 C 同时开发引擎和游戏 并使用 box2D 作为物理后端 我正在不同的 Android 设备上进行测试 在三分之二的设备上 游戏运行良好 物理效果也很好 然而 在我的 Galaxy Tab 10 1 上 我偶尔会遇到某种 口吃 的
  • AutoHotkey 导致控制键卡住

    我有几种情况会导致我的控制键卡住 并且只有当我运行 AutoHotkey 时才会发生这种情况 这种情况发生在多个不同的修饰键上 包括 control windows 和 alt 键 类似的问题之前已经发过多次了 1 https autoho
  • Rails 中对多个域/子域的支持

    我有一个 Rails 应用程序 它的设置与 Tumblr 类似 也就是说 您可以选择 1 子域名托管 your username myapp com 2 域名托管 your username com 两者都会转发到使用我的应用程序创建的该用
  • MVC3 中的“方法‘LabelFor’没有重载需要 2 个参数”

    我正在运行 ASP NET MVC 3 并且正在查看模型的编辑视图 我有一个FullName我想呈现为 全名 的属性 这是有问题的行 div class display label div 现在智能感知shows存在重载 有两个签名 第一个
  • 临时数据持久化

    我一直在与TempData最近面临一个令人困惑的案例 假设TempData在以下操作中创建 public ActionResult MyAction1 myTempData TempData myTempData 预计将在以下 Action
  • “make install”将库安装在 /usr/lib 而不是 /usr/lib64

    我正在尝试在 64 位 CentOS 7 2 上构建并安装一个库 为了这个目的我正在跑步 cmake DCMAKE BUILD TYPE Release DCMAKE INSTALL PREFIX usr DCMAKE C COMPILER
  • Kapt 未在即时应用程序功能模块中生成类

    我在我的 Android 应用程序中使用 dagger2 即使没有错误 它也不会生成匕首组件类 我已经在设置中启用了注释处理器并重新启动了我的 android studio 但这对我来说不起作用 我也读过这个帖子Dagger2 不生成 Da
  • Heroku 上的 dyno 是否同时重启?

    我在 Heroku 网站上看到 dynos 大约每 24 小时重新启动一次 例如 如果您有两个网络测功机 它们是否有可能同时重新启动 谢谢你的时间 根据赫罗库 骑行每 24 小时进行一次 加上最多 216 个随机 分钟 以防止应用程序的每个
  • NSTextField 弹跳截断的文本而不是换行

    我想知道是否有一种简单的方法来 弹跳 或滚动NSTextField文本太长而无法显示 例如 lt scroll This is a rather large pi ece of text 因此 在此示例中 文本将滚动到末尾 显示消息的其余部
  • 处理 Android 锁屏上的音量变化?

    我想做的是 能够在 android 4 4 上的锁屏上捕获音量增大 减小按钮操作 Google Cast 设计清单 https developers google com cast docs design checklist sender