如何检测android穿1.0和2.0

How to detect android wear 1.0 and 2.0

我已经成功制作了一个允许手表下载穿戴应用程序的项目apk。我正在尝试使用该可穿戴代码来支持独立的 wear 2.0 - 互联网上的资源似乎不多。

我的问题是如何判断穿戴式设备是1.0还是2.0。我使用基于此 link 的 productFlavors 如下:

android {
// Allows you to reference product flavors in your
// phone module's build.gradle file
publishNonDefault true
...
defaultConfig
{
   // This is the minSdkVersion of the Wear 1.x embedded app
   minSdkVersion 23
   ...
}
buildTypes {...}
productFlavors {
    wear1 {
      // Use the defaultConfig value
    }
    wear2 {
        minSdkVersion 25
    }
}
}

我记得,Wear 1.0 通常从 phone 收集数据,Wear 2.0 可以通过互联网访问数据。如有错误请指正

因此,如果可穿戴设备是 1.0,它会使用 Wearable.API 并与 phone 同步。否则,可穿戴设备与云端同步。

我看了这个post,好像有用,但我不是很明白。

PackageManager pm = getApplicationContext().getPackageManager();
pm.getPackageInfo(packagename, PackageManager.GET_ACTIVITIES);

我是否应该为 wear2 设置不同的 packagename(或 applicationId)以便我可以使用此方法? 当我将独立版本放在 Play 商店时有什么缺点吗?我想我必须以这种方式创建一个新项目。

谁能告诉我实现我的目的的最佳方法?

如果您想分发和维护两个单独的 APK,那么构建风格可能是一种合理的方式。但我建议这对您或您的用户来说都不是好的体验;这对你来说更多的工作,而且会让他们感到困惑(我应该安装哪个版本?为什么我的手表升级到 Wear 2.0 后这个应用程序不工作? 等等).

我的建议是将其全部放在一个 APK 中,然后只需选择在 运行 时间使用哪种同步技术:

if (Build.VERSION.SDK_INT < 24) {
    // Wear 1.x
} else {
    // Wear 2+
}