Как изменить громкость BlackBerry или отключить звук? - PullRequest
1 голос
/ 30 ноября 2008

Мой текущий код такой:

int volume = Alert.getVolume(); // reads 100
Alert.setVolume(0);

Это не меняет настройки громкости, как это должно было бы быть Даже вызов Alert.mute(true); не дает хорошего эффекта. Audio.setVolume(0); тоже не работает!

Я запускаю это на Curve 8310. У меня установлено другое программное обеспечение, хотя ему удается значительно снизить громкость. Я полагаю, я делаю что-то не так. Есть идеи?

Ответы [ 3 ]

1 голос
/ 01 декабря 2008

Если вы используете класс javax.microedition.lcdui.Alert, это может быть вашей проблемой. Попробуйте взглянуть на класс net.rim.device.api.notification.NotificationsManager и его другие классы / интерфейсы пакетов.

Хотя простой / вежливый способ - просто попросить пользователя изменить профили пользователя вручную. Если я включу свой blackberry в беззвучный режим, и какое-то приложение издает безумный шум (или вообще не издает никаких шумов, если я ожидаю важный звонок), я удалю это приложение как можно скорее.

1 голос
/ 14 сентября 2009

Если вы хотите воспроизвести звук с 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

0 голосов
/ 30 ноября 2008

Некоторые функции на blackberry (но не на эмуляторе) работают только с подписанным кодом. Я не уверен, что это касается объема, но я не удивлюсь, когда это произойдет.

...