Android 2.2 上的振动设置

2023-12-08

我正在制作一个振动切换小部件(事实上,它的第一个版本已经在市场上),但我在 Android 2.2 的振动设置方面遇到了一些问题。

直到 Android 2.1 我都没有问题,当我想禁用振动时我会这样做

am.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER,AudioManager.VIBRATE_SETTING_OFF);
am.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION,AudioManager.VIBRATE_SETTING_OFF);

和相同但与VIBRATE_SETTING_ON在两条线上将其打开,并且工作正常。

但是,由于Android 2.2引入了“仅在静音模式下振动”和“非静音模式下振动”,我不知道如何使其工作。当振动设置为“始终”或“从不”时,没有问题,但一旦用户手动将其设置为其他两个设置之一,应用程序就会开始做奇怪的事情。

例如,如果我将其设置为“仅在静音模式下振动”,并且通过小部件关闭振动,它会关闭,但是当我重新打开它时...它会返回到“仅在静音模式下”的“永远”。事实上,除非您通过“设置”->“声音”来将其设置回“始终”,所以我猜振动模式的组合框正在做一些我不知道的事情。就像它将该值存储在其他地方一样,因为即使我手动设置为“始终”,当我禁用它并通过小部件再次启用它(使用我之前发布的代码)时,它仍然会返回到“仅在静音模式下振动” ”。

更重要的是,AudioManager 类中有一个值“仅在静音模式下”(VIBRATE_SETTING_ONLY_SILENT),但是当您将其设置为“仅在不处于静音模式时”时,它会使用 VIBRATE_SETTING_ON,因此无法检测到它(不是说我我知道,我的意思是)。

希望我没有太困惑,但我想提供所有可能的数据。有了这一切...

有谁知道如何正确处理 2.2 中的振动设置?为了完全禁用或启用振动,我是否必须设置或调用任何其他变量?或者有一种方法可以将手机“重置”到已知状态以使其正常工作?

重现该问题(或者至少是其中一个问题)的步骤是:

  • 通过设置菜单将振动设置为“仅在静音模式下”。

  • 通过小部件将振动设置为“从不”:

    setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, AudioManager.VIBRATE_SETTING_OFF);

  • 检查设置菜单中振动是否设置为“从不”。

  • 通过小部件将振动设置为“始终”:

    setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, AudioManager.VIBRATE_SETTING_ON);

  • 进入设置菜单 -> 振动设置为“仅在静音模式下”

当某些应用程序搞乱了我的 Nexus One 的个人设置时,我不得不自己修改这些设置。他们来了:

始终在环上振动:

setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, AudioManager.VIBRATE_SETTING_ON);

切勿在环上振动:

setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, AudioManager.VIBRATE_SETTING_OFF);

仅在静音状态下在环上振动:

setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, AudioManager.VIBRATE_SETTING_ONLY_SILENT);

通知时始终振动:

setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION, AudioManager.VIBRATE_SETTING_ON);

切勿在通知时振动:

setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION, AudioManager.VIBRATE_SETTING_OFF);

仅在无声通知时振动:

setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION, AudioManager.VIBRATE_SETTING_ONLY_SILENT);

更改铃声模式:

AudioManager.setRingerMode(RINGER_MODE_NORMAL); AudioManager.setRingerMode(RINGER_MODE_SILENT); AudioManager.setRingerMode(RINGER_MODE_VIBRATE);

振动设置独立于铃声设置。混乱随之而来。

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

Android 2.2 上的振动设置 的相关文章

  • 通过数据绑定将字符串传递到包含的布局不起作用

    我正在尝试使用 Android 数据绑定功能将一个简单的字符串从我的主布局传递到布局 它编译得很好 但传递给包含的值实际上并未传递 即 它没有出现在我的布局中
  • 已发布的 Flutter 应用程序在启动时崩溃

    编辑 此问题的解决方案是将您的 flutter 版本升级到较新的 dev 版本 then 1 7 0 您还可以上传单独的 APK 版本 但我个人不喜欢这个选项 请确保您没有从 flutter github 开发存储库下载 错误的构建 因为那
  • 单击 RecyclerView 内的 ImageView 时更改图像资源

    每当我单击它时 单击图像 而不是项目 我都会尝试更改回收器视图内特定位置的设备图像资源 我尝试将 setOnClickListener 放入 onBindViewHolder 方法中 但只有最后一个项目受到影响 这是我的回收者视图 http
  • Android中如何使用洪水填充算法?

    我是Android编程新手 最近尝试编写一个简单的应用程序 仅供练习 在这个中 我想在用户点击时为图像着色 但我不知道如何开始 我读过不同的主题 其中提到使用 洪水填充 算法 我在网上找到了它 但我不知道如何将它放入我的简单应用程序中 我找
  • 显示警报或收到通知时的视图

    我正在关注this http tokudu com 2010 how to implement push notifications for android 显示的教程通知 on an 安卓设备 当我在设备上运行该应用程序时 状态栏上会出现
  • 使用 APDU 命令的有效 NFC 读取比特率是多少?

    我目前正在使用 Android IsoDep trancieve 函数发送和接收累计 1628 字节的数据 该函数分布在 35 个 APDU 命令 选择应用程序 身份验证 读取 中 字节计数包括返回的 MAC 校验和以及由 transcie
  • Google Firebase - 如何删除崩溃报告?

    我最终失明了吗 还是没有明显的方法可以通过 Google Firebase Web 控制台删除 Firebase 崩溃报告 我的 Android 应用程序已成功记录报告 但现在出现大量 开发崩溃 占用了我在控制台中的大部分视图 这使得找到实
  • 连接到不可发现的蓝牙设备

    我正在开发一个安卓应用程序 只是一个一般性问题 是否可以连接到公开不可发现的设备 提前致谢 如果您之前已与该设备配对 则即使该设备未处于可发现模式 也可以再次连接到该设备 参见这篇文章 以编程方式连接到配对的蓝牙设备 https stack
  • 监听什么来检测 Android 中的请勿打扰模式更改?

    我希望我的应用程序在手机设置为请勿打扰模式 仅限闹钟 仅限优先级或完全静音 时显示通知 通过聆听 这效果非常好android media RINGER MODE CHANGED在快速设置中检查此模式并在已选择的选项卡中选择模式时 但是 当选
  • Android ListView setSelection() 似乎不起作用

    我有一个ListActivity实现onListItemClick 并调用doSomething 类的功能 后者包含l setSelection position where l is the ListView object 现在有一个on
  • Android模拟器分配内存失败8

    当我尝试从 Eclipse 运行 WXGA800 模拟器时 出现如下错误 Failed to allocate memory 8 This application has requested the Runtime to terminate
  • 如何从 Facebook 邀请好友到 Android 应用程序? - 给出错误

    我正在开发一个 Android 应用程序 我正在努力将 邀请朋友 功能添加到我的应用程序中 它转到我的AppLinkUrl成功但显示错误 我的清单代码如下
  • 内部存储的安全性如何?

    我需要的 对于 Android 我需要永久保存数据 但也能够编辑 并且显然是读取 它 用户不应访问此数据 它可以包含诸如高分之类的内容 用户不得对其进行编辑 我的问题 我会 并且已经 使用过Internal Storage 但我不确定它实际
  • 在 Android 布局 xml 文件中使用字符串格式参数 [重复]

    这个问题在这里已经有答案了 我在 String xml 文件中定义了一个使用格式参数的字符串 即
  • 更改Android菜单的背景颜色[重复]

    这个问题在这里已经有答案了 我正在尝试将标准浅灰色更改为浅绿色 似乎没有一个简单的方法可以做到这一点 例如 通过 Android 主题 但我找到了一个解决方法 如本页所述 http tinyurl com 342dgn3 http tiny
  • android:layout_alignParentBottom 在没有显式布局高度作为 ListView 中的行的情况下使用时会被忽略

    当我使用RelativeLayout与任一fill parent or wrap content作为高度和一个指定的元素 android layout alignParentBottom true 它被忽略并在顶部对齐 设置高度Relati
  • Android:无法发送http post

    我一直在绞尽脑汁试图弄清楚如何在 Android 中发送 post 方法 这就是我的代码的样子 public class HomeActivity extends Activity implements OnClickListener pr
  • 通过powershell运行ADB命令

    所以我尝试通过 powershell 脚本运行一些 ADB 命令 这是我正在尝试做的一个简单示例 adb shell echo in adb shell su root echo you are now root ls cd data da
  • 如何以编程方式创建活动转换?

    我想以编程方式创建一个动画 以从触摸屏点启动具有缩放效果的活动 接下来我模拟缩放输入效果
  • putFragment() - 片段 x 当前不在 FragmentManager 中

    上面的标题被问了很多次 但答案似乎与FragmentStatePagerAdapter这与我的问题无关 我正在使用该方法putFragment Bundle String Fragment 直接地 The 安卓文档 http develop

随机推荐

  • 如何使用 vba 创建 ActiveX 按钮并向其添加代码(告诉它要运行哪个子程序)?

    我想在工作表中创建一个 ActiveX 按钮并为其分配一个代码 即告诉它要运行哪个子程序并且该子程序已经存在 我可以创建按钮 已记录 ActiveSheet OLEObjects Add ClassType Forms CommandBut
  • Java 1.7.0_u25 Applet 使用 eclipse 调试

    我现在正在尝试调试一个小程序 2 天 并且我已经检查了该网站上发布的每个解决方案 但我找不到我的错误 在我的 Java 运行时环境设置中 我使用以下参数设置了所有 JRE Djava compiler NONE Xnoagent Xdebu
  • 如何从循环内的函数中中断 Python while 循环

    while True input raw input enter input result useInput input def useInput input if input exit break return 0 quit etc i
  • 设置 PopoverContentSize 时出现问题

    我无法使用 size 650 400 设置 contentsize 但即使我创建具有相同宽度和高度的 popoverController 它也会被创建 不知道什么是担忧 点击 Enter 后显示如下 IBAction setButtonTa
  • THREE.GLTFLoader:未知扩展“KHR_materials_pbrSpecularGlossiness

    我们有一个导出 glb 文件的应用程序 当我尝试使用以下命令将它们加载到 Three js 中时GLTF加载器模型没有显示纹理 我收到此警告THREE GLTFLoader Unknown extension KHR materials p
  • 平滑不同幅度的噪声(第 2 部分)

    好吧 我继续这个问题而不回答 平滑不同幅度的随机噪声 我还有另一个问题 我选择使用形状的轮廓 阴影 翻译 转换 距离其中心有偏移 距离的点列表 该轮廓 阴影比当前路径大 我使用了这个存储库 https github com n yoda u
  • 如何创建未知类型的实例?

    我有几个需要精确参数类型的函数 又名T private
  • Oreo 更新后发生 INSTALL_FAILED_NO_MATCHING_ABIS 错误 [重复]

    这个问题在这里已经有答案了 我实际上正在开发 3 个 Android 应用程序 A B C 在我的所有设备上一切都正常 但是当我将 S7 Edge 更新到 Oreo 时 发生了一些奇怪的事情 2 个应用程序 A B 消失了 我的手机上只剩下
  • 如何获取 Android 设备的当前方向 (ActivityInfo.SCREEN_ORIENTATION_*)?

    我想了解设备的详细方向 最好是其中之一SCREEN ORIENTATION LANDSCAPE SCREEN ORIENTATION PORTRAIT SCREEN ORIENTATION REVERSE LANDSCAPE SCREEN
  • 软漆桶填充:颜色平等

    我正在制作一个小应用程序 孩子们可以用颜色填充预设插图 我已经使用洪水填充算法成功实现了 MS paint 风格的油漆桶 然而 靠近图像元素边缘的像素未填充 因为线条是抗锯齿的 这是因为当前是否填充的条件是colourAtCurrentPi
  • 在 tkinter 中的两个框架之间切换?

    我已经构建了我的前几个脚本 上面有一个漂亮的小 GUI 正如教程所示 但它们都没有解决如何处理更复杂的程序 如果您有一个带有 开始菜单 的东西 用于您的打开屏幕 并且根据用户选择 您移动到程序的不同部分并适当地重绘屏幕 那么执行此操作的优雅
  • AttributeError:“模块”对象没有属性“audio_fadein”

    我已经使用 cx freeze 将 python 项目构建到带有 exe 及其依赖项的单个文件夹中 但是当我运行 exe 时 出现错误 AttributeError module moviepy audio fx all has no at
  • 与 C 语言相比,C++ 有哪些限制? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 以下是C 的好处 C 提供了他们询问的具体功能 他们的 C 编译器几乎肯定是 C 编译器 因此不存在软件成本问题 C 与 C 一样可移植 C 代码可以与 C 一样高效 或者更高 或者更低
  • printf 的参数数量错误会导致奇怪的结果

    include
  • 如何在MySQL中生成数据?

    这是我的 SQL SELECT COUNT id CONCAT YEAR created at MONTH created at DAY created at FROM my table GROUP BY YEAR created at M
  • 如何使用 python 建立 ssh 连接?

    任何人都可以推荐一些在 python 中建立 ssh 连接的东西吗 我需要它与任何操作系统兼容 我已经尝试过 pyssh 只是为了得到 SIGCHLD 错误 我读过这是因为 Windows 缺少这个 我尝试过让 paramiko 工作 但
  • 如果没有活动事务,CreateQuery 无效

    我正在尝试使用 Spring Transactional 注释 但是当该方法时我遇到问题findAll被调用 我有这个错误 org hibernate HibernateException createQuery is not valid
  • C#使用命名空间语句排序

    我想我在某处读到 排序你的 using 语句并删除未使用的语句会带来某种性能优势 但我似乎找不到任何证据或资源来支持这一点 这有什么道理吗 No the using用于设置命名空间的语句没有性能成本 无论语句的顺序如何 生成的 IL 代码都
  • 查找距离 get.shortest.paths() 的路线距离

    我正在使用igraph在 R 中封装来做一些相当简单的事情 计算网络中两个节点之间的最短距离 有没有一种直接的方法来提取通过计算得出的路径的距离get shortest paths 这是一些可重现的代码 说明了我的问题 reproducib
  • Android 2.2 上的振动设置

    我正在制作一个振动切换小部件 事实上 它的第一个版本已经在市场上 但我在 Android 2 2 的振动设置方面遇到了一些问题 直到 Android 2 1 我都没有问题 当我想禁用振动时我会这样做 am setVibrateSetting