2013-04-22 63 views
0

民謠,如何獲取Android中的顯示設備特徵?

我們的應用程序僅適用於具有特定序列號的特定型號的顯示器。在我們的應用程序的Linux版本中,我們通過EDID獲取這些信息。

我們正在考慮將代碼移植到Android(Google TV)。

在Android NDK上是否有任何API可以讓我們獲得顯示設備的特性,如型號和序列號?

非常感謝您的幫助。

問候,
彼得

回答

0

由於谷歌電視設備沒有電話硬件,您不能使用TelephonyManager來獲取設備ID。

您可以用下面的代碼獲取其他設備信息:

Log.i(LOG_TAG, "android.os.Build.VERSION.RELEASE="+android.os.Build.VERSION.RELEASE); 
Log.i(LOG_TAG, "android.os.Build.VERSION.INCREMENTAL="+android.os.Build.VERSION.INCREMENTAL); 
Log.i(LOG_TAG, "android.os.Build.DEVICE="+android.os.Build.DEVICE); 
Log.i(LOG_TAG, "android.os.Build.MODEL="+android.os.Build.MODEL); 
Log.i(LOG_TAG, "android.os.Build.PRODUCT="+android.os.Build.PRODUCT); 
Log.i(LOG_TAG, "android.os.Build.MANUFACTURER="+android.os.Build.MANUFACTURER); 
Log.i(LOG_TAG, "android.os.Build.BRAND="+android.os.Build.BRAND); 

對於Vizio公司合作的明星谷歌電視設備,你會得到如下:

android.os.Build.VERSION.RELEASE=3.2 
android.os.Build.VERSION.INCREMENTAL=U4.6.0-ota2 
android.os.Build.DEVICE=VAP430 
android.os.Build.MODEL=VAP430 
android.os.Build.PRODUCT=StreamPlayer 
android.os.Build.MANUFACTURER=VIZIO 
android.os.Build.BRAND=Vizio 
+0

感謝您的幫助。我的需求是將所附顯示設備(電視機,投影機等)的信息獲取到Co-Star,而不是Co-Star本身。由於您的答案與我正在尋找的最接近,我會繼續並將其標記爲現在的解決方案。問候,彼得。 – Peter 2013-04-23 05:30:57

0

你可以轉儲所有功能使用以下內容:

TextView text = (TextView) findViewById(id.featurestextview); 

    FeatureInfo features[] = getPackageManager() 
      .getSystemAvailableFeatures(); 
    Log.d("Features", "getSystemAvailableFeatures() = " + features); 

    text.append("Supported System Features on this device:\n\n"); 

    if (features != null) { 
     for (FeatureInfo featureInfo : features) { 
      if (featureInfo.name!= null) { 
       text.append(featureInfo.name+" (Flags: "+featureInfo.flags+") \n"); 
      } else { 
       text.append(featureInfo+"\n"); 
      } 
     } 
    } 

    long maxMemory = Runtime.getRuntime().maxMemory(); 
    int memoryClass = ((ActivityManager) getSystemService(ACTIVITY_SERVICE)).getMemoryClass(); 
    MemoryInfo memInfo = new MemoryInfo(); 
    ((ActivityManager) getSystemService(ACTIVITY_SERVICE)).getMemoryInfo(memInfo); 


    text.append("\n\nMEMORY:\nMaxMemory "+maxMemory/1024+"KB/"+maxMemory/1024/1024+"MB"); 
    text.append(" (Memory Class: "+memoryClass+")"); 
    text.append("\n MemoryInfo: Avail="+ memInfo.availMem/1024 +"KB Threshold="+memInfo.threshold /1024 +"KB"); 

供應商等的android生成屬性將allo您可以將範圍擴展到特定的設備。關於序列號(例如cpu serial - 不可用),我們建議您使用mac地址。

+0

謝謝你的幫助。這是否會向我提供有關所連接的顯示設備(如電視機或投影儀)的信息?此致,彼得 – Peter 2013-04-23 05:29:04

+0

這種信息只能通過現在在電視市場完全不支持HDMI CEC。您目前無法找到您通過HDMI連接的設備類型。 – Krispy 2013-04-24 17:08:07