我需要知道是否有一种方法可以让android穿戴应用始终处于交互模式。(我知道这会消耗电池寿命)
"旋转离开"手势是可寻址的,还是只要手表转到外部,手表就会进入环境?
答案取决于你的"app"是一个活动还是一个服务。
活动应该简单地指定android:keepScreenOn="true"
,而不需要做任何其他事情。
如果它是一个服务(例如,你正在制作一个闹钟/计时器表盘),我建议启动一个透明的"永远在线"活动。据我所知,目前,系统将不允许您的服务在正常的屏幕打开周期持续时间之外保持屏幕处于完全唤醒锁定状态。这可能是由于唤醒锁误用。与一个活动,这是可能的,目前,并有处理解散行动的好处为你(例如侧按钮按下,手掌等)。我在一组"计时器"表盘上使用了类似的模式。
你可以这样从一个服务中实现永远在线:
在负责唤醒手表的服务/活动中:
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"
,让用户更容易杀死正在消耗他们手表的东西。