Android应用程序是否有办法在Java代码中告诉它在GoogleTV上是否在平板电脑或手机上运行?从Android应用程序中识别GoogleTv
回答
以下链接可能会对您有所帮助:Google TV Android Developer's Guide要优化您的Google TV应用,只需为大屏幕添加额外的布局即可。但是,如果您想在运行时确定当前正在使用该应用程序的设备,则可以尝试使用hasSystemFeature()方法。通过此功能,您可以测试Google TV独有的某些硬件功能(例如,您可以测试FEATURE_TOUCHSCREEN,因为除Google TV之外的任何设备都有一个< =>如果该功能不受支持,则该应用可能在电视上运行) 。
是否还有没有触摸屏的低端轨迹球手机? – miguel 2011-06-02 02:02:00
[这里](http://code.google.com/tv/android/docs/gtv_android_features.html)是电视上不存在的一些功能。如果你将它们结合起来,你可以很确定你的应用运行在哪种类型的设备上。但我无法确定,因为我自己没有Google TV。 – 2011-06-02 09:35:55
@miguel:现在,所有安装有Android Market的手机都拥有触摸屏,因为这是CDD所要求的。但是,这并不排除没有市场的手机,市场盗版手机或未来CDD的变化。 – CommonsWare 2011-06-02 12:50:54
下面是我如何收集有用的反馈信息。我不知道是否有可能检测到该设备(手机,VS表,对谷歌电视)的类型,但它可以建立某种映射数据库和反对
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();
}
你可以问比赛信息包管理器:
/**
* 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" />
这不起作用 – Prizoff 2015-08-13 13:53:39
按照oficial docs:
确定您的应用程序是否在电视设备上运行的推荐方法是使用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");
}
它适合我! – 2016-11-02 03:29:44
- 1. Android Studio不再识别应用程序
- 2. 语音识别Android应用程序
- 3. Android应用程序的语音识别
- 4. 识别来电的Android应用程序
- 5. Android应用程序无法识别setRedirectStrategy?
- 6. 的Android应用程序,识别物体
- 7. 创建肖像GoogleTV应用程序
- 8. GoogleTV发布网络应用程序
- 9. Android语音识别器只能从应用程序的主线程中使用
- 10. 在Android应用程序中使用Google帐户识别用户
- 11. 在Android NDK中识别调用应用程序
- 12. 用应用程序识别文件
- 13. 从请求中识别应用程序池的名称
- 14. 从我的应用程序中识别软件包
- 15. 如何从Java Swing应用程序中识别显示器?
- 16. Heroku将Django应用程序识别为Node应用程序
- 17. 识别我的应用程序上的其他应用程序
- 18. 应用程序引擎应用程序标识符别名
- 19. Heroku应用程序未被识别为播放应用程序
- 20. 使用Sphinx4.0构建语音识别。 Android应用程序
- 21. Android应用程序内购买用户识别
- 22. 语音识别Android应用
- 23. 人脸识别Android应用
- 24. 创建语音识别应用程序
- 25. iPhone应用程序 - 咖啡杯识别
- 26. 安卓语音识别应用程序
- 27. ASP.NET语音识别应用程序
- 28. 不会识别应用程序代理
- 29. 识别应用程序实例Windows 8
- 30. 开发人脸识别应用程序
因为,在写这篇文章的时候,我们可以不写应用程序的谷歌电视,得到的回答是:“如果你的Java代码正在运行,它不在Google TV上“。我建议在我们可以为Google TV编写应用程序后再次询问。 – CommonsWare 2011-06-02 00:38:43
我碰巧有一个“鱼缸”设备。我将编辑该问题以反映这一点。 – miguel 2011-06-02 01:57:56