如何确定我是否在Android Wear中运行?

Kam*_*i81 1 android wear-os

我在Android Studio中有一个移动和磨损模块,他们都使用"核心"代码库...在核心代码中,我如何确定我的代码是否在"移动"模块的"磨损"上运行?我应该使用屏幕尺寸吗?

mat*_*ash 7

虽然这没有正式记录(我知道),您可以通过调用以下任一方式来确定设备是手表还是手持设备:

getPackageManager().hasSystemFeature(PackageManager.FEATURE_WATCH);
Run Code Online (Sandbox Code Playgroud)

或使用:

Configuration config = getResources().getConfiguration();
boolean isWatch = (config.uiMode & Configuration.UI_MODE_TYPE_MASK) == Configuration.UI_MODE_TYPE_WATCH;
Run Code Online (Sandbox Code Playgroud)

我已经测试了两个,他们在我的测试Wear设备(Moto 360)中返回true,在Nexus 5手机中返回false.

(我通过浏览API级别4.4W(20)API差异报告找到了它们.虽然不能保证,但这些应该比检查其他功能的不可用性更具有前瞻性,因为这些可能只是暂时的限制).