0

如果您更改振动设置,我在 froyo 中读到setVibrateSettings()它不会与 SO 振动设置同步。然后我发现人们使用此链接中的某些功能的这种解决方法:

https://android.googlesource.com/platform/packages/apps/Settings/+/froyo-release/src/com/android/settings/SoundSettings.java

但是,该源代码有两个调用:

 173        boolean vibeInSilent = (Settings.System.getInt(
 174             getContentResolver(),
 175             Settings.System.VIBRATE_IN_SILENT,
 176             1) == 1);

 227        Settings.System.putInt(getContentResolver(),
 228             Settings.System.VIBRATE_IN_SILENT,
 229             vibeInSilent ? 1 : 0);

这是我在代码中尝试更改振动设置的唯一区别。但Settings.System.VIBRATE_IN_SILENT似乎在 2.2 中被删除,所以当我将振动设置更改为“正常、关闭、仅静音”时,我会转到 SO 音频设置和 vib 值不同,如果我回到我的应用程序,vib 设置也是与我之前选择的不同。有任何想法吗?

4

1 回答 1

0

试试下面的链接: http ://www.kiwidoc.com/java/l/p/android/android/8/p/android.provider/c/Settings.System

根据我的尝试,该设置仍然存在,但没有像以前那样暴露。它仍然可以使用 Settings.System.putInt(...) 进行设置,只需指定名称“vibrate_in_silent”。

我想有一天这将不再起作用,所以我建议以任何可能的方式保护您的代码(通过首先调用 getInt 检查设置是否存在,添加 try-catch ...)

于 2011-06-16T14:32:05.497 回答