2014-07-01 65 views
6

有誰知道我會如何去喚醒Wear屏幕?我正在運行振動API:Android Wear:以編程方式喚醒屏幕

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

應在2秒(2000毫秒)後停止。如果屏幕處於打開狀態,此功能非常有用,但如果屏幕關閉,振動將持續到屏幕被觸摸並喚醒。

編輯: 我做了一個快速入門,使它與計時器一起工作,但我希望能夠以更清潔的方式阻止振動。

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:這不是每次都行,所以是的,能夠喚醒屏幕將是最好的選擇。我確實通過使用模式而不是直接放入持續時間來讓它工作,但我仍然很想知道如何激活屏幕,因爲我覺得這可能會導致更多的問題,因爲我一直在使用此平臺。

long[] pattern = { 0, getResources().getInteger(R.integer.vibration_duration) }; 
    v.vibrate(pattern, -1); 

回答

3

使用NotificationCompat.Builder爲您的應用程序創建通知幷包含振動模式。這應該喚醒您的通知屏幕(並仍然爲用戶振動)。可穿戴設備對於返回到睡眠狀態是積極的,特別是如果用戶不與其進行交互,所以這可能是最簡單的方法。

+0

我有與通知生成器相同的問題。直到用戶觸摸屏幕纔會振動。 – nicolas

1

我只是花了一段時間試圖找出如何通過WearableListenerService遠程啓動手錶上的活動時喚醒手錶。我發現,我的G Watch R上完美的作品是FLAG_TURN_SCREEN_ON

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