我目前的代码是这样的:
int volume = Alert.getVolume(); // reads 100
Alert.setVolume(0);
它不会改变音量设置,就像它应该做的那样即使调用Alert.mute(true);
也不会产生任何好的效果。
Audio.setVolume(0);
也不行!
我在 Curve 8310 上运行它。我安装了另一个软件,尽管它成功地降低了音量设置。o 我想我做错了什么。任何的想法 ?
我目前的代码是这样的:
int volume = Alert.getVolume(); // reads 100
Alert.setVolume(0);
它不会改变音量设置,就像它应该做的那样即使调用Alert.mute(true);
也不会产生任何好的效果。
Audio.setVolume(0);
也不行!
我在 Curve 8310 上运行它。我安装了另一个软件,尽管它成功地降低了音量设置。o 我想我做错了什么。任何的想法 ?
如果您使用的是 class javax.microedition.lcdui.Alert
,那可能是您的问题。尝试查看net.rim.device.api.notification.NotificationsManager
该类及其其他包类/接口。
虽然简单/礼貌的方式只是要求用户手动更改用户配置文件。如果我将我的黑莓设置为静音并且某些应用程序发出疯狂的噪音(或者如果我期待一个重要的电话,则根本不会发出噪音),我将尽快删除该应用程序。
如果你想用Alert播放声音:
class Scr extends MainScreen implements FieldChangeListener {
ButtonField mVolumeUp;
ButtonField mVolumeDown;
ButtonField mPlay;
LabelField mVolumeLabel;
int mVolumeValue = 50;
private static final short[] tune = new short[] { 466, 125, 10, 466 };
public Scr() {
mVolumeLabel = new LabelField("Volume: " + mVolumeValue);
add(mVolumeLabel);
mVolumeUp = new ButtonField("Vol Up", ButtonField.CONSUME_CLICK);
mVolumeUp.setChangeListener(this);
add(mVolumeUp);
mVolumeDown = new ButtonField("Vol Down", ButtonField.CONSUME_CLICK);
mVolumeDown.setChangeListener(this);
add(mVolumeDown);
mPlay = new ButtonField("Play", ButtonField.CONSUME_CLICK);
mPlay.setChangeListener(this);
add(mPlay);
}
public void fieldChanged(Field field, int context) {
if (mVolumeUp == field) {
if (mVolumeValue <= 90)
mVolumeValue += 10;
mVolumeLabel.setText("Volume: " + mVolumeValue);
} else if (mVolumeDown == field) {
if (mVolumeValue >= 10)
mVolumeValue -= 10;
mVolumeLabel.setText("Volume: " + mVolumeValue);
} else if (mPlay == field) {
Alert.startAudio(tune, mVolumeValue);
}
}
}
在 RIM 4.5 8310 模拟器上测试
黑莓(但不是模拟器)上的某些功能仅适用于签名代码。我不确定是否是音量的情况,但当它是时我不会感到惊讶。