Как проверить, работает ли приложение на Android-телевизоре
Есть ли способ проверить, работает ли приложение на Android TV или Android Mobile?
Я знаю, как проверить запущенную сборку. Я хочу начать определенную службу, если приложение работает на Android TV против Mobile. Был надеяться разместить двоих в той же библиотеке.
Ответы
Ответ 1
Некоторые параметры:
1) Запросить систему для большого экрана
2) Использовать отражение для определения определенных классов ТВ
3) Используйте hasSystemFeature, чтобы обнаружить отсутствие сенсорного экрана
Дополнительная информация
https://developer.android.com/training/tv/start/hardware.html
И аналогичный ответ для Google TV
Определите GoogleTv из приложения Android
Ответ 2
Из Обработки ТВ оборудования в Android Документах:
public static final String TAG = "DeviceTypeRuntimeCheck";
UiModeManager uiModeManager = (UiModeManager) getSystemService(UI_MODE_SERVICE);
if (uiModeManager.getCurrentModeType() == Configuration.UI_MODE_TYPE_TELEVISION) {
Log.d(TAG, "Running on a TV Device");
} else {
Log.d(TAG, "Running on a non-TV Device");
}
Ответ 3
private boolean isDirectToTV() {
return(getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEVISION)
|| getPackageManager().hasSystemFeature(PackageManager.FEATURE_LEANBACK));
}
Это вернет true
, если устройство рекламирует себя как имеющее функции android.hardware.type.television
или android.software.leanback
. Android TV и Fire TV справляются с этим правильно; Я еще не пробовал это в другой среде.