7

从本机应用程序中,我们如何从代码中检测 Google Glass 和智能手机?

移动问题的正确答案:

boolean isRunningOnGlass() {
     return "Google".equalsIgnoreCase(Build.MANUFACTURER) && Build.MODEL.startsWith("Glass");
 }
4

4 回答 4

6

另一种方法是使用 Build API:

http://developer.android.com/reference/android/os/Build.html

于 2013-09-10T16:58:36.547 回答
4

使用 GDK,您可以使用:

 boolean isRunningOnGlass() {
     return "Google".equalsIgnoreCase(Build.MANUFACTURER) && Build.MODEL.startsWith("Glass");
 }

(如果有新型号的 Google Glas 出来,型号检查可能会很好。)

于 2014-02-27T06:40:01.497 回答
0

我怀疑会有一个官方的方式来获得这个,但也许你可以使用浏览器用户代理:

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

于 2013-09-10T16:56:39.570 回答
0

您可以使用 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)。

于 2017-09-13T10:40:50.657 回答