2014-07-01 15 views
6

Weiß jemand, wie ich über den Wear-Bildschirm aufwachen würde? Ich verwende die Vibrations-API mit:Android Wear: Programmatically Wake Screen

Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); 
v.vibrate(getResources().getInteger(R.integer.vibration_duration)); 

, die nach 2 Sekunden (2000 Millisekunden) stoppen sollte. Dies funktioniert hervorragend, wenn der Bildschirm eingeschaltet ist, aber wenn der Bildschirm ausgeschaltet ist, wird die Vibration fortgesetzt, bis der Bildschirm berührt und aufgeweckt wird.

Bearbeiten: Ich habe einen schnellen Hack zusammengebaut, um es mit einem Timer zu arbeiten, aber ich würde gerne in der Lage sein, die Vibration auf eine sauberere Art und Weise zu stoppen.

final Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); 
    v.vibrate(getResources().getInteger(R.integer.vibration_duration)); 
    Timer timer = new Timer(); 
    timer.schedule(new TimerTask() { 
     @Override 
     public void run() { 
      v.cancel(); 
     } 
    }, getResources().getInteger(R.integer.vibration_duration)); 

reedit: Das ist nicht jedes Mal funktioniert, soooo ja, wäre die beste Wette in der Lage, den Bildschirm zu aktivieren. Ich habe es geschafft, indem ich ein Muster verwende, anstatt die Dauer direkt einzugeben, aber ich würde immer noch gerne wissen, wie man den Bildschirm aktiviert, da dies meiner Meinung nach zu weiteren Problemen führen kann, wenn ich weiter mit dieser Plattform arbeite .

Antwort

3

Verwenden Sie NotificationCompat.Builder, um eine Benachrichtigung für Ihre App zu erstellen und ein Vibrationsmuster einzufügen. Dies sollte den Bildschirm mit Ihrer Benachrichtigung aufwecken (und vibriert immer noch für den Benutzer). Das tragbare Gerät ist aggressiv, wenn es in einen Schlafzustand zurückkehrt, insbesondere wenn der Benutzer nicht mit ihm interagiert, daher ist dies wahrscheinlich der einfachste Ansatz.

+0

Ich habe das gleiche Problem mit Benachrichtigung Builder. Keine Vibration bis der Benutzer den Bildschirm berührt. – nicolas

1

Ich habe gerade eine Weile damit verbracht, herauszufinden, wie ich die Uhr aufwecken kann, wenn ich über WearableListenerService eine Aktivität auf der Uhr starte. Was ich an meiner G Watch R perfekt fand, ist FLAG_TURN_SCREEN_ON.

getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);