1

有没有办法检测手表何时处于环境屏幕模式?我制作了表盘并想在环境屏幕模式开启时继续更新时钟(时钟显示在屏幕上),但我想在屏幕关闭时停止更新。onPause现在,我在和方法中启动和停止更新onResume,但是onPause当环境屏幕模式启动时会调用该方法。

谢谢。

4

3 回答 3

1

要收到环境模式更改的通知,您必须使用DisplayListener. 你可以在这里找到方法

于 2014-11-28T16:45:54.360 回答
1

正常的方式是使用android WearableActivity 并实现onEnterAmbientand onExitAmbient.

当然,还有另一种方法,用于DisplayListener检查显示状态是否为DOZEDOZE_SUSPEND

于 2016-07-12T10:23:35.027 回答
0

您应该AmbientMode.AmbientCallbackProvider 改为实现回调。

它是新的首选方法,它仍然为您提供onEnterAmbient(), onAmbientUpdate(), 并且onExitAmbient()还允许您使用Activity(或任何子类... FragmentActivity 等)。它还允许您支持架构组件。

官方文档列出了详细信息(和示例代码)

public class MainActivity extends Activity implements AmbientMode.AmbientCallbackProvider {

    /*
     * Declare an ambient mode controller, which will be used by
     * the activity to determine if the current mode is ambient.
     */
    private AmbientMode.AmbientController mAmbientController;
    …
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    ...
        mAmbientController = AmbientMode.attachAmbientSupport(this);
    }
    ...

    …
    @Override
    public AmbientMode.AmbientCallback getAmbientCallback() {
        return new MyAmbientCallback();
    }
    …

private class MyAmbientCallback extends AmbientMode.AmbientCallback {
    @Override
    public void onEnterAmbient(Bundle ambientDetails) {
             // Handle entering ambient mode
    }

    @Override
    public void onExitAmbient() {
      // Handle exiting ambient mode
     }

    @Override
    public void onUpdateAmbient() {
      // Update the content
    }
}
于 2017-10-25T17:28:19.667 回答