2015-03-02 25 views
0

我對在Build類以下consts幾個問題:的Android Build.XXX consts標準

製造商,型號,產品,品牌,設備

  1. 是否有某種標準爲上述常量的值?
  2. 我可以指望所有設備上存在的值(不是空白)嗎?
  3. 設備從不同的移動運營商購買時,這些值之間是否存在差異?
  4. 什麼是識別設備類型的最佳方式? (例如,要知道這是從Verizon購買的Galaxy S5)?如果存在這種方式,它是否是防彈的?

回答

0
  1. 沒有
  2. 沒有
  3. 可能,但不能肯定
  4. 你不應該從統計決策的原因

從經驗來說做到這一點分開,我勸你不要依靠這些價值。也許對於統計數據或類似顯示設備ID的內容,但不要將操作留在非人類系統上,因爲常數往往差異很大。

例如,我看到一個Kazam電話,它有一個Note 2常數。不值得頭痛。

+0

感謝很多:) 你有一種方式來識別該設備/移動運營商的建議? – dors 2015-03-02 08:54:54

+0

當前的載體可以從TelephonyManager中提取(http://stackoverflow.com/questions/3838602/how-to-find-out-carriers-name-in-android),對於設備,您列出的常量是你最好的選擇,但是再次嘗試不要太依賴它們。最好根據屏幕尺寸,密度,語言等對設備進行分類。,這是Android框架提供的所有東西。 – Kelevandos 2015-03-02 08:58:16

+0

如果您發現滿意的答案,請將其標記爲正確。謝謝! :-) – Kelevandos 2015-03-02 09:22:51

0

這些是構建定製Android ROM時的系統屬性,ROM製造商可以根據自己的要求更改它們的值。

至於應用程序開發人員,您可以直接從隱藏API從shell命令或Java代碼中檢索這些值。

$ adb shell getprop 
or 
SystemProperties.get("ro.product.model"); 

因此,您的問題。

  1. 沒有標準來規範這些數值應該怎麼寫。
  2. 通常這些值應該存在於CTS後面的所有設備上並獲得CTS證書,這是系統級別的Android設備兼容性。如果他們希望他們的產品廣泛使用,每個Android設備製造商都將遵循CTS標準。
  3. 由製造商決定,這些值應該是不同的或不同的載體。
  4. 對於使用Android應用程序級別,要識別設備,設備型號就足夠了。應用開發者可以從設備型號獲取設備規格。如果您需要運營商信息,則可以使用TelephoneManager來獲取它。

    TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 
    telephonyManager.getNetworkOperator();