有谁知道如何唤醒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 );
答案 0 :(得分:3)
使用NotificationCompat.Builder为您的应用创建通知并包含振动模式。这应该通过您的通知唤醒屏幕(并且仍然为用户振动)。可穿戴设备对于返回睡眠状态非常积极,特别是如果用户没有与之交互,所以这可能是最简单的方法。
答案 1 :(得分:1)
当我通过WearableListenerService远程启动手表活动时,我花了一些时间试图弄清楚如何唤醒手表。我发现在我的G Watch R上完美运行的是FLAG_TURN_SCREEN_ON。
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);