2016-03-02 18 views
0

我有一個關於android.os.Build下的Android Model number的問題。我的要求是,我需要一個唯一的號碼來識別特定設備的型號。型號會在REST API的幫助下發送到我的服務器。然後服務器將提供特定設備的詳細模型信息。所以,我試圖從android.os.Build訪問型號。開發人員網站稱其定義爲「最終產品的最終用戶可見名稱」。Android Build Model Number是否獨一無二?

所以我的問題是,這個型號在世界各地都是獨一無二的嗎?或者它根據不同的國家而改變?或者它根據商店(Play商店,亞馬遜商店等)進行更改?

+0

怎麼樣IMEI號碼?比型號好嗎? – Sree

+0

是的,我建議一樣。但問題是,我需要確定模型。不是那個特定的設備。是否可以使用IMEI來識別模型? – Nithinjith

+1

有一個第三方鏈接https://imeidata.net/,我不知道任何可用於此的API服務 – Sree

回答

2

是世界各地的設備的型號是相同的。

使用follong代碼來獲取modelNumber:

public String getDeviceName() { 
    String manufacturer = Build.MANUFACTURER; 
    String model = Build.MODEL; 
    if (model.startsWith(manufacturer)) { 
     return capitalize(model); 
    } else { 
     return capitalize(manufacturer) + " " + model; 
    } 
} 


private String capitalize(String s) { 
    if (s == null || s.length() == 0) { 
     return ""; 
    } 
    char first = s.charAt(0); 
    if (Character.isUpperCase(first)) { 
     return s; 
    } else { 
     return Character.toUpperCase(first) + s.substring(1); 
    } 
} 

這會給你的唯一型號。

For the reference please refer the post

+0

這是說一個設備有多個型號的權利?那麼它的獨特性如何? – Nithinjith

1

爲唯一標識,你可以使用安全類中這是Android的設置包的一部分的設備。它將Android ID作爲唯一的64位十六進制字符串返回。這樣:

import android.provider.Settings.Secure; 
private String android_id = Secure.getString(getContext().getContentResolver(), 
                 Secure.ANDROID_ID); 

但是,這有時不爲空。唯一識別設備的完美完整解決方案尚未出現。獲取設備的唯一ID時需要考慮各種因素。也看到這個Answer