lea*_*ist 17 android android-tv
有没有办法检查应用是否在Android TV或Android Mobile上运行?
我知道如何检查正在运行的构建.如果应用程序在Android TV和Mobile上运行,我想启动特定服务.希望把两个人放在同一个图书馆里.
ms_*_*s_b 32
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");
}
Run Code Online (Sandbox Code Playgroud)
Com*_*are 17
private boolean isDirectToTV() {
return(getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEVISION)
|| getPackageManager().hasSystemFeature(PackageManager.FEATURE_LEANBACK));
}
Run Code Online (Sandbox Code Playgroud)
true如果设备宣称自己具有android.hardware.type.television或具有android.software.leanback系统功能,则会返回此选项.Android TV和Fire TV正确处理这个问题; 我还没有尝试过其他环境.
一些选项是:
1)查询系统大屏
2)使用反射来检测电视特定类别
3) 使用hasSystemFeature检测是否缺少触摸屏
更多信息
https://developer.android.com/training/tv/start/hardware.html
以及 Google TV 的类似答案
| 归档时间: |
|
| 查看次数: |
5993 次 |
| 最近记录: |