如何强制LiveCard在被解雇之前可见

时间:2014-07-28 20:46:12

标签: google-glass google-gdk

我正在使用Glass构建OBD数据(速度,转速,油门位置等)的抬头显示。

我正在使用LiveCard来显示HUD,但是就像所有卡片一样,它会在几秒钟后消失,因为Glass会让显示器进入睡眠状态。

有没有办法强制卡在被解雇之前保持可见?如果需要唤醒HUD显示器并不是非常有用。

到目前为止的代码在这里:https://github.com/mpicco/glass-obd-hud

谢谢,

玛蒂

2 个答案:

答案 0 :(得分:1)

我建议您使用Immersion + FLAG_KEEP_SCREEN_ON旗帜或Service内的partial wakelock

来自Android documentation

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag");
wl.acquire();
// ..screen will stay on during this section..
wl.release();

如果你确实使用了唤醒锁解决方案,请不要忘记在Service停止后释放它。

答案 1 :(得分:0)

我这样做的方式是在我想保持屏幕的活动里面,我添加了一个窗口参数,如下所示:

public class MyActivity extends Activity {

    ...

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
    }
}

电源管理器服务可能也可以正常工作,但这样当用户破坏我的活动或其他类似的事情时,我不必担心维持状态。