检查设备是否 运行 Android-Things
Check if a device is running Android-Things
是否可以执行运行时检查以查看设备是否 运行 Android-Things?
您使用 AndroidThings 制作的任何 apk 都将上传到 IoT 控制台 而不是 到 Play 商店。
因此,如果您想要使用 Gradle Flavors and a flag 的单个代码库,我会推荐 。这意味着您将构建两个单独的 APK,而不是在运行时执行 "what platform am I on" 检查。
这将确保您的 APK 在两个内存受限的独立平台上都具有最小的大小。 (例如,在 Android Things 上使用的 Google Play Services 的风格是一般 Android 应用程序可用的精简版本)。 Android Things supports a subset of the Google APIs for Android. The linked table breaks down API support in Android Things.
您可以在 PackageManager
中查询 FEATURE_EMBEDDED
,所有 Android Things 设备都已实现:
public boolean isThingsDevice(Context context) {
final PackageManager pm = context.getPackageManager();
return pm.hasSystemFeature(PackageManager.FEATURE_EMBEDDED);
}
此常量最近添加到 Android O 预览版 SDK 中。在发布基于 O 的 Android Things 预览版之前,您可能需要使用常量的字面名称:android.hardware.type.embedded
是否可以执行运行时检查以查看设备是否 运行 Android-Things?
您使用 AndroidThings 制作的任何 apk 都将上传到 IoT 控制台 而不是 到 Play 商店。
因此,如果您想要使用 Gradle Flavors and a flag 的单个代码库,我会推荐 。这意味着您将构建两个单独的 APK,而不是在运行时执行 "what platform am I on" 检查。
这将确保您的 APK 在两个内存受限的独立平台上都具有最小的大小。 (例如,在 Android Things 上使用的 Google Play Services 的风格是一般 Android 应用程序可用的精简版本)。 Android Things supports a subset of the Google APIs for Android. The linked table breaks down API support in Android Things.
您可以在 PackageManager
中查询 FEATURE_EMBEDDED
,所有 Android Things 设备都已实现:
public boolean isThingsDevice(Context context) {
final PackageManager pm = context.getPackageManager();
return pm.hasSystemFeature(PackageManager.FEATURE_EMBEDDED);
}
此常量最近添加到 Android O 预览版 SDK 中。在发布基于 O 的 Android Things 预览版之前,您可能需要使用常量的字面名称:android.hardware.type.embedded