我有一个错误报告,声音无法在运行3.0的华硕Transformer平板电脑上运行。
我没有做任何太奇怪的事情,只需使用MediaPlayer,它似乎适用于各种手机。但是,如果this post返回RINGER_MODE_NORMAL
以外的内容,我会使用getRingerMode()中描述的方法禁用声音。这样,如果用户将手机设置为“仅振动”,则不会产生令人惊讶的声音输出(因为媒体和振铃器使用单独的音量控制)。
如果平板电脑没有手机功能,Android平板电脑上的getRingerMode()函数是否可以返回RINGER_MODE_SILENT
?
编辑:请注意,在模拟器上没有更改任何内容我得到了RINGER_MODE_NORMAL。
编辑2 :在绝望的最后一幕中,我删除了振铃模式检查并在市场上重新发布。这家伙刚刚确认声音现在有效。似乎getRingerMode()至少在某些平板电脑上返回RINGER_MODE_NORMAL以外的东西。
答案 0 :(得分:2)
这是GingerBread的代码。如果IAudioService无法返回RINGER_MODE_NORMAL
getRingerMode();
/**
* 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;
}
}
下面一步,
IAudioService#getRingerMode()
抛出android.os.RemoteException
在AudioManager中,Honeycomb(读取chengelog)的唯一区别是:
添加了字段 int MODE_IN_COMMUNICATION
本课程3.1中没有任何内容,所以我认为Gingerbread代码仍然有效。