Sono rimasto perplesso dalla tua domanda e ho deciso di raccogliere la sfida. Ho provato cosa diversa tra cui
- Riproduzione di un file di "silenzio" audio sperando di sovrapporsi squillo del dispositivo o occupare il lettore multimediale
- Hacking lo schermo del telefono tramite
UiApplication.getUiApplication().getActiveScreen()
- eventi della tastiera Iniezione
Alla fine, iniettando il tasto VOLUME UP (il tasto VOLUME DOWN funziona allo stesso modo), l'evento ha funzionato per me e ha disattivato il suono del dispositivo durante la chiamata in arrivo. Lo svantaggio di questo approccio è che a volte il dispositivo squillava per una frazione di secondo prima del muting.
import net.rim.blackberry.api.phone.AbstractPhoneListener;
import net.rim.blackberry.api.phone.Phone;
import net.rim.device.api.system.Application;
import net.rim.device.api.system.EventInjector;
import net.rim.device.api.ui.Keypad;
class Muter extends AbstractPhoneListener {
public void callIncoming(int callId) {
Thread muterThread = new Thread(new Runnable() {
public void run() {
EventInjector.invokeEvent(new EventInjector.KeyCodeEvent(EventInjector.KeyCodeEvent.KEY_DOWN, (char) Keypad.KEY_VOLUME_UP, 0));
EventInjector.invokeEvent(new EventInjector.KeyCodeEvent(EventInjector.KeyCodeEvent.KEY_UP, (char) Keypad.KEY_VOLUME_UP, 0));
}
});
muterThread.setPriority(Thread.MAX_PRIORITY);
muterThread.start();
}
}
public class MuterApp extends Application {
public static void main(String[] args){
Phone.addPhoneListener(new Muter());
new MyApp().enterEventDispatcher();
}
}
Il seguente funziona anche (sostituire Muter
filo in callIncoming()
metodo con il seguente codice).
UiApplication.getUiApplication().invokeLater(new Runnable() {
public void run() {
EventInjector.invokeEvent(new EventInjector.KeyCodeEvent(EventInjector.KeyCodeEvent.KEY_DOWN, (char) Keypad.KEY_VOLUME_UP, 0));
EventInjector.invokeEvent(new EventInjector.KeyCodeEvent(EventInjector.KeyCodeEvent.KEY_UP, (char) Keypad.KEY_VOLUME_UP, 0));
}
});
Ok lo so. Ma come utilizzare EventInjector per modificare il profilo audio del telefono in modalità silenziosa? Ho provato un paio di combinazioni e non ha funzionato ... qualche idea? –
Se si dispone di un dispositivo BB, è sufficiente capire le pressioni dei tasti necessarie per modificare il telefono nel profilo silenzioso, quindi replicarlo con il proprio codice. – jprofitt
Capito ... l'ho provato .. e non ha funzionato :) –