2014-11-25 1 views
7

Есть ли способ проверить, работает ли приложение на Android TV или Android Mobile?Как проверить, работает ли приложение на Android-телевизоре

Я знаю, как проверить работу сборки. Я хочу начать определенную службу, если приложение работает на Android TV против Mobile. Был надеяться разместить двоих в одной библиотеке.

ответ

2

Некоторые опции:

1) Запрос системы для большого экрана

2) использовать отражение для обнаружения ТВ конкретных классов

3) Используйте hasSystemFeature обнаружить отсутствие сенсорного экрана

Подробнее

https://developer.android.com/training/tv/start/hardware.html

И подобный ответ для Google TV

Identify GoogleTv from Android app

+2

Андроид команда рекомендуется проверить на androidTV этого пути https://developer.android.com/training/tv/start/hardware.html – leafartist

12
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 справляются с этим правильно; Я еще не пробовал это в другой среде.

+0

+1 этот подход позволяет вы легко подключаете функции на соответствующей платформе, я просто использовал ее для Now Playing Card на AndroidTV. – sschrass

20

Handling TV Hardware С в Android Docs:

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") 
} 
+1

Это именно то, что Google упоминает. –

Смежные вопросы