我需要知道是否有办法让安卓穿戴应用程序始终处于交互模式。(我知道这会耗尽电池寿命)
“旋转离开”手势是可寻址的,还是只要手表放在外侧,手表就会进入环境?
我需要知道是否有办法让安卓穿戴应用程序始终处于交互模式。(我知道这会耗尽电池寿命)
“旋转离开”手势是可寻址的,还是只要手表放在外侧,手表就会进入环境?
答案取决于您的“应用程序”是活动还是服务。
一个活动应该简单地指定android:keepScreenOn="true"
而不需要做任何进一步的事情。
如果它是一项服务(例如,您正在制作闹钟/计时器表盘),我建议您开始一个透明的“永远在线”活动。AFAIK,目前,系统将不允许您的服务在正常的屏幕开启周期持续时间之外以完全唤醒锁定保持屏幕开启。这很可能是由于误用唤醒锁。使用 Activity,目前这是可能的,并且有利于为您处理解除操作(例如,按下侧按钮、手掌等)。我在一组“计时器”表盘中使用了类似的模式。
以下是您可以通过服务实现永远在线的方法:
在负责唤醒手表的服务/活动中:
private PowerManager.WakeLock mFullWakeLock;
// Initialization...
PowerManager pm =(PowerManager) getSystemService(Context.POWER_SERVICE);
mFullWakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "WatchFaceAlarmWokenUp");
// Elsewhere, when the watch needs to be woken by the service...
// Wake the watch to give ourselves some time to start the activity
mFullWakeLock.acquire(2000l);
Intent intent = new Intent(this, AlarmExpiredActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
您的AlarmExpiredActivity
布局必须指定以下属性:
android:keepScreenOn="true"
我建议您还指定android:onClick="hide"
让用户更容易杀死消耗手表的东西。