如何判断我是否在Android Wear中运行?

时间:2014-12-10 17:01:06

标签: android wear-os

我在Android Studio中有一个移动和磨损模块,他们都使用了核心'代码库......在那个核心代码中,我怎样才能确定我的代码是否正在运行' wear'移动'移动'模块?我应该使用屏幕尺寸吗?

2 个答案:

答案 0 :(得分:7)

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

getPackageManager().hasSystemFeature(PackageManager.FEATURE_WATCH);

或使用:

Configuration config = getResources().getConfiguration();
boolean isWatch = (config.uiMode & Configuration.UI_MODE_TYPE_MASK) == Configuration.UI_MODE_TYPE_WATCH;

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

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

答案 1 :(得分:1)

正如documentation所说:

  

可穿戴应用可以访问大部分标准Android API,但不能   支持以下API:

  • android.webkit
  • android.print
  • android.app.backup
  • android.appwidget
  • android.hardware.usb

因此,您可以将hasSystemFeature(String name)与不受支持的API(作为输入)一起使用,以检查给定的功能名称是否是设备中的可用功能之一。如果它返回false,那么你就会穿着,否则你会在移动中。