Можно ли выполнить проверку во время выполнения, чтобы узнать, работает ли устройство под управлением Android-Things?
Проверьте, работает ли на устройстве Android-Things
Ответы (2)
Вы можете запросить PackageManager
для FEATURE_EMBEDDED
, который реализован на всех устройствах Android Things:
public boolean isThingsDevice(Context context) {
final PackageManager pm = context.getPackageManager();
return pm.hasSystemFeature(PackageManager.FEATURE_EMBEDDED);
}
Эта константа была недавно добавлена в Android O Preview SDK. Пока не будет выпущена предварительная версия Android Things на основе O, вам может потребоваться использовать буквальное имя константы: android.hardware.type.embedded
Любой APK-файл, который вы создаете с помощью AndroidThings, будет загружен в консоль IoT не в магазин игр.
Поэтому я бы рекомендовал если вам нужна единая кодовая база, которую вы используете Gradle Flavors и флаг. Это означает, что вы создадите два отдельных APK, а не будете проверять "на какой платформе я работаю" во время выполнения.
Это гарантирует, что ваш APK будет иметь наименьший размер на обеих платформах с ограниченным объемом памяти. (Например, разновидность сервисов Google Play, которая используется в Android Things, представляет собой урезанную версию того, что доступно для обычных приложений Android). Android Things поддерживает подмножество API Google для Android. Связанная таблица разбивает поддержку API в Android Things.
Class.forName()
, чтобы узнать, существуют ли они. - person CommonsWare   schedule 24.05.2017