从Android应用程序中识别GoogleTv

有没有一种方法让Android应用程序在Java代码中告诉它在Google TV上是否在平板电脑或手机上运行?

Solutions Collecting From Web of "从Android应用程序中识别GoogleTv"

以下链接可能会对您有所帮助: Google TV Android开发人员指南要优化您的Google TV应用程序,只需为大屏幕添加额外的布局即可。 但是,如果要在运行时确定当前正在使用该应用程序的设备,则可以尝试hasSystemFeature()方法。 有了这个function,您可以testingGoogle TV独有的某些硬件function(例如,您可以testingFEATURE_TOUCHSCREEN,因为除了Google TV之外的任何设备都有一个<=>,如果该function不受支持,则应用程序可能在电视上运行) 。

你可以问包pipe理器:

/** * Test if this device is a Google TV. * * See 32:00 in "Google I/O 2011: Building Android Apps for Google TV" * http://www.youtube.com/watch?v=CxLL-sR6XfM * * @return true if google tv */ public static boolean isGoogleTV(Context context) { final PackageManager pm = context.getPackageManager(); return pm.hasSystemFeature("com.google.android.tv"); } 

加上这个清单行:

 <uses-feature android:name="com.google.android.tv" android:required="false" /> 

根据官方文件 :

确定您的应用程序是否在电视设备上运行的推荐方法是使用UiModeManager.getCurrentModeType()方法来检查设备是否在电视模式下运行。 以下示例代码显示了如何检查您的应用是否在电视设备上运行:

 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"); } 

以下是我如何收集有用的反馈信息。 我不知道是否有可能检测到设备的types(手机,VS表,与谷歌电视),但可以build立某种映射数据库和匹配信息反对它

 private String getDeviceInfo() { final StringBuilder sb = new StringBuilder("\n\n---\n"); try { sb.append("Version: ").append(getPackageManager().getPackageInfo(this.getPackageName(), 0).versionName) .append('\n'); } catch (final NameNotFoundException e) { // Shouldn't happen but if did - ignore Log.e(TAG, "failed to get app version", e); } sb.append("Model: ").append(Build.MODEL).append('\n'); sb.append("Brand: ").append(Build.BRAND).append('\n'); sb.append("Device: ").append(Build.DEVICE).append('\n'); sb.append("Display: ").append(Build.DISPLAY).append('\n'); sb.append("Hardware: ").append(Build.HARDWARE).append('\n'); sb.append("Manufacturer: ").append(Build.MANUFACTURER).append('\n'); sb.append("Host: ").append(Build.HOST).append('\n'); sb.append("Release: ").append(Build.VERSION.RELEASE).append('\n'); sb.append("Board: ").append(Build.BOARD).append('\n'); sb.append("Radio: ").append(Build.RADIO).append('\n'); sb.append("Product: ").append(Build.PRODUCT).append('\n'); return sb.toString(); }