有没有办法在我的Android应用程序代码中检测到这一点? 我想区分“Box type”(例如NSZGS7,没有附加显示器)和内置到电视类型(NSXGT1,带显示器)googleTV设备。是否有可用于区分的标准系统属性或功能标志?
答案 0 :(得分:1)
我认为没有一种超级优雅的方法来检测设备是否有显示器或是否是盒子。但您可以使用android.os.Build来检测制造商/设备/模型等,并根据系统属性进行区分。 http://developer.android.com/reference/android/os/Build.html
以下是大多数当前可用的GTV设备的系统属性:
MANUFACTURER DEVICE MODEL
Sony NSX-GT1(TV) Sony asura Internet TV
Sony NSZ-GT1(BD) Sony eagle Internet TV Box
Sony NSZ-GS7(Box) Sony NSZGS7 NSZ-GS7/GX70
Sony NSZ-GU1(Stick) Sony NSZGU1 NSZ-GU1
Logitech Revue(Box) logitech ka Revue
Netgear GTV100(Box) Netgear NeoTV GTV100
Hisense Pulse(Box) hisense hisense_gx1200v hisense_gx1200v
Vizio Costar (Box) VIZIO VAP430 VAP430
LG G2(TV) lge cosmo LG Google TV
希望这有帮助! -Tonni来自索尼
答案 1 :(得分:1)
这是我现在使用的代码。这不是未来的证据,这意味着随着新的电视类型GoogleTV设备的发布,这些代码将需要更新。但是,此代码现在已完成工作。
boolean is_gtv_device_type_tv(){
if (context.getPackageManager().hasSystemFeature("com.google.android.tv")) {
if(android.os.Build.DEVICE != null) {
if(android.os.Build.DEVICE.equalsIgnoreCase("asura"))
return true;
if(android.os.Build.DEVICE.equalsIgnoreCase("cosmo"))
return true;
}
// All other google tv devices are buddy boxes!! :)
return false;
}
}
答案 2 :(得分:0)
在“设备属性”中查找 ro.hdmi.device_type
(对于 HDMI 接收设备,例如平板电视,它是“0”,对于 HDMI 源设备,例如 Over the Top (OTT) 盒子,它是“4”)。>
使用 ABD:
adb shell getprop ro.hdmi.device_type
以编程方式:
public static String getDeviceType() {
switch (System.getProperty("ro.hdmi.device_type")){
case "0":
return "TV";
case "4":
return "BOX";
default:
return "UNKNOWN";
}
}