从本机应用程序中,我们如何从代码中检测 Google Glass 和智能手机?
移动问题的正确答案:
boolean isRunningOnGlass() {
return "Google".equalsIgnoreCase(Build.MANUFACTURER) && Build.MODEL.startsWith("Glass");
}
从本机应用程序中,我们如何从代码中检测 Google Glass 和智能手机?
移动问题的正确答案:
boolean isRunningOnGlass() {
return "Google".equalsIgnoreCase(Build.MANUFACTURER) && Build.MODEL.startsWith("Glass");
}
另一种方法是使用 Build API:
http://developer.android.com/reference/android/os/Build.html
使用 GDK,您可以使用:
boolean isRunningOnGlass() {
return "Google".equalsIgnoreCase(Build.MANUFACTURER) && Build.MODEL.startsWith("Glass");
}
(如果有新型号的 Google Glas 出来,型号检查可能会很好。)
我怀疑会有一个官方的方式来获得这个,但也许你可以使用浏览器用户代理:
1) 在 Android 上,您可以通过以下方式以编程方式获取用户代理:如何从 android 设备获取默认的 HTTP USER AGENT?
2)当然,用户代理可以改变,但在 2013 年 7 月,它是/曾经是:
Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; Glass 1 Build/IMM76L; XE7) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
您可以使用 android.os.Build 类确定您的 android 应用程序在哪个 OS Build、Product、Device 等上运行。
例如:您可以像这样检测您的应用程序是否在 google glass(API 19) 上运行:
if(Build.VERSION.SDK_INT==Build.VERSION_CODES.KITKAT){
Log.e("SDK_INT",""+Build.VERSION.SDK_INT);
Log.e("MODEL",""+Build.MODEL);
Log.e("DEVICE",""+Build.DEVICE);
Log.e("TYPE",""+Build.TYPE);
Log.e("HARDWARE",""+Build.HARDWARE);
Log.e("BRAND",""+Build.BRAND);
Log.e("DISPLAY",""+Build.DISPLAY);
Log.e("MANUFACTURER",""+Build.MANUFACTURER);
Log.e("PRODUCT",""+Build.PRODUCT);
if (isGlass()){
Log.e("isGlass","True");
}
} else {
Log.e("Other",""+Build.VERSION.SDK_INT);
}
boolean isGlass(){return"Google".equalsIgnoreCase(Build.MANUFACTURER)&&Build.MODEL.startsWith("Glass");
}
记录结果
09-13 17:58:42.835 24240-24240/com.example.myxlab.beyondartest E/SDK_INT: 19
09-13 17:58:42.835 24240-24240/com.example.myxlab.beyondartest E/MODEL: Glass 1
09-13 17:58:42.835 24240-24240/com.example.myxlab.beyondartest E/DEVICE: glass-1
同样,对于手表 (API KITKAT_WATCH = 20)。