Android Wear:以编程方式唤醒屏幕

时间:2014-07-01 19:37:52

标签: android wear-os

有谁知道如何唤醒Wear屏幕?我正在运行振动API:

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 );

2 个答案:

答案 0 :(得分:3)

使用NotificationCompat.Builder为您的应用创建通知并包含振动模式。这应该通过您的通知唤醒屏幕(并且仍然为用户振动)。可穿戴设备对于返回睡眠状态非常积极,特别是如果用户没有与之交互,所以这可能是最简单的方法。

答案 1 :(得分:1)

当我通过WearableListenerService远程启动手表活动时,我花了一些时间试图弄清楚如何唤醒手表。我发现在我的G Watch R上完美运行的是FLAG_TURN_SCREEN_ON

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