android-3.0-honeycomb - getRingerMode() 在 Android 平板电脑上返回什么?

标签 android-3.0-honeycomb android

我收到一个错误报告,声音在运行 3.0 的 ASUS Transformer 平板电脑上不起作用。

我没有做任何太奇怪的事情,只是使用 MediaPlayer,它似乎适用于各种手机。但是,我使用了 this post 中描述的方法如果 getRingerMode() 禁用声音返回 RINGER_MODE_NORMAL 以外的内容。这样,如果用户将手机设置为“仅振动”,他们就不会得到令人惊讶的声音输出(因为媒体和铃声使用单独的音量控制)。

如果平板电脑没有电话功能,getRingerMode() 函数是否可能在 Android 平板电脑上返回 RINGER_MODE_SILENT

编辑:请注意,在模拟器上不做任何更改我得到 RINGER_MODE_NORMAL。

编辑 2:在最后的绝望中,我删除了铃声模式检查并在市场上重新发布。这家伙刚刚确认声音现在可以工作了。至少在某些平板电脑上,getRingerMode() 似乎会返回 RINGER_MODE_NORMAL 之外的其他内容。

最佳答案

这是来自 GingerBread 的代码。如果 IAudioService 无法返回 getRingerMode();

,它将返回 RINGER_MODE_NORMAL
/**
 * Returns the current ringtone mode.
 *
 * @return The current ringtone mode, one of {@link #RINGER_MODE_NORMAL},
 *         {@link #RINGER_MODE_SILENT}, or {@link #RINGER_MODE_VIBRATE}.
 * @see #setRingerMode(int)
 */
public int getRingerMode() {
    IAudioService service = getService();
    try {
        return service.getRingerMode();
    } catch (RemoteException e) {
        Log.e(TAG, "Dead object in getRingerMode", e);
        return RINGER_MODE_NORMAL;
    }
}

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.3_r1/android/media/AudioManager.java/?v=source

下面一步,

IAudioService#getRingerMode() 抛出 android.os.RemoteException

AudioManager 中 Honeycomb(阅读 chengelog)的唯一区别是:

Added Fields int MODE_IN_COMMUNICATION

而且 3.1 中没有这个类,所以我假设 Gingerbread 代码仍然有效。

http://developer.android.com/sdk/api_diff/11/changes.html

关于android-3.0-honeycomb - getRingerMode() 在 Android 平板电脑上返回什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6009359/

相关文章:

android - 如何在代码中将子菜单项添加到 ActionBar 操作?

android - 如何在 Android API 11 平板电脑及更多设备上获取应用程序的 hdpi 图标(在 Java 代码中)?

android - build.gradle 文件中的 compileKotlin block 抛出错误 "Could not find method compileKotlin() for arguments [...]"

android - 如何在android中为gridview设置相等的列宽?

android - 在 recyclerview(gridview) 向左滑动,向内捏合

Android:如何将 ActionBar "Home"图标更改为应用程序图标以外的其他内容?

Android和Honeycomb-如何在没有 "action bar"的情况下使用SDK 13设置菜单图标

android - 在 Android 平板电脑 (3.1) 的内存中写入和读取图像时遇到问题

java - 退出 Activity 时如何在 Firestore 中执行 delete() 操作?

android - 一种模拟 satalites 数据(计数、SNR)的方法