如何为 WearOS 模拟器添加边框
How to add bezel to WearOS simulator
三星开始在其最新的智能手表中使用 WearOS,例如在 Galaxy 4 手表中,我需要测试边框功能,因为后一种型号确实有。但是我没有在 AVD 中找到任何支持边框的 WearOS 设备。
我也试过创建一个新的 h/w 配置文件,但也没有找到边框选项。他们拥有的所有导航选项都在下面。 None 其中与挡板有关。
我也曾尝试为 Galaxy 4 寻找皮肤,但到目前为止还没有成功。根据 Galaxy4 所有者的说法,以下代码不起作用。您当然可以建议如何修复代码,但我仍然想知道如何在不买手表的情况下进行测试
view.setOnGenericMotionListener { v, ev ->
if (ev.action == MotionEvent.ACTION_SCROLL &&
ev.isFromSource(InputDeviceCompat.SOURCE_ROTARY_ENCODER)
) {
val delta = -ev.getAxisValue(MotionEventCompat.AXIS_SCROLL) *
ViewConfigurationCompat.getScaledVerticalScrollFactor(
ViewConfiguration.get(this), this
)
if (Math.abs(delta) > 2f) {
val np = if (delta > 0) Util.nextAccount(mAccount) else Util.prevAccount(mAccount)
Util.d(TAG, mAccount + np.toString())
switchAccount(np)
}
true
} else {
false
}
}
nextAccount和prevAccount是一些切换视图的自定义函数。 None个是根据用户调用的
这里是一个 Tizen Studio 模拟器,它的边框可以通过拖动白点来旋转:
我终于解决了这个问题。在应该处理旋转事件的视图布局中,我添加了 requestFocus 标记:
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
android:scrollbars="vertical"
android:fadeScrollbars="false"
android:id="@+id/token_scroll"
>
<requestFocus />
...
为了测试边框,我使用了模拟器右侧的菜单,如下图所示。 Bezel 事件至少在模拟器中得到了正确处理。当听到用户的消息时,我会告诉你它是否适用于真正的 Galaxy 4 智能手表。
更新
一位 Galaxy 4 智能手表用户刚刚确认修复后边框可以正常工作。它确认修复和测试方法都是正确的并且达到了他们的目标。
三星开始在其最新的智能手表中使用 WearOS,例如在 Galaxy 4 手表中,我需要测试边框功能,因为后一种型号确实有。但是我没有在 AVD 中找到任何支持边框的 WearOS 设备。
我也试过创建一个新的 h/w 配置文件,但也没有找到边框选项。他们拥有的所有导航选项都在下面。 None 其中与挡板有关。
我也曾尝试为 Galaxy 4 寻找皮肤,但到目前为止还没有成功。根据 Galaxy4 所有者的说法,以下代码不起作用。您当然可以建议如何修复代码,但我仍然想知道如何在不买手表的情况下进行测试
view.setOnGenericMotionListener { v, ev ->
if (ev.action == MotionEvent.ACTION_SCROLL &&
ev.isFromSource(InputDeviceCompat.SOURCE_ROTARY_ENCODER)
) {
val delta = -ev.getAxisValue(MotionEventCompat.AXIS_SCROLL) *
ViewConfigurationCompat.getScaledVerticalScrollFactor(
ViewConfiguration.get(this), this
)
if (Math.abs(delta) > 2f) {
val np = if (delta > 0) Util.nextAccount(mAccount) else Util.prevAccount(mAccount)
Util.d(TAG, mAccount + np.toString())
switchAccount(np)
}
true
} else {
false
}
}
nextAccount和prevAccount是一些切换视图的自定义函数。 None个是根据用户调用的
这里是一个 Tizen Studio 模拟器,它的边框可以通过拖动白点来旋转:
我终于解决了这个问题。在应该处理旋转事件的视图布局中,我添加了 requestFocus 标记:
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
android:scrollbars="vertical"
android:fadeScrollbars="false"
android:id="@+id/token_scroll"
>
<requestFocus />
...
为了测试边框,我使用了模拟器右侧的菜单,如下图所示。 Bezel 事件至少在模拟器中得到了正确处理。当听到用户的消息时,我会告诉你它是否适用于真正的 Galaxy 4 智能手表。
更新 一位 Galaxy 4 智能手表用户刚刚确认修复后边框可以正常工作。它确认修复和测试方法都是正确的并且达到了他们的目标。