2012-08-30 118 views
2

可能重複:
Is there a unique Android device ID?如何獲取android設備唯一ID?

我用下面的代碼來獲得Android設備的IMEI和如何更改下面的代碼來獲得Android設備的唯一ID。

String getDeviceID1(TelephonyManager phonyManager){ 
    String id = phonyManager.getDeviceId(); 
    if (id == null){ 
     id = "not available"; 
    } 
    int phoneType = phonyManager.getPhoneType(); 
    switch(phoneType){ 
     case TelephonyManager.PHONE_TYPE_NONE: 
      return "" + id; 

     case TelephonyManager.PHONE_TYPE_GSM: 
      return "" + id; 

     case TelephonyManager.PHONE_TYPE_CDMA: 
      return "" + id; 

     /* 
     * for API Level 11 or above 
     * case TelephonyManager.PHONE_TYPE_SIP: 
     * return "SIP"; 
     */ 

     default: 
      return "" + id; 
    } 

    //I used to show IMEI 

    TextView textDeviceID = (TextView)findViewById(R.id.deviceid); 
    //retrieve a reference to an instance of TelephonyManager 
    TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); 
    textDeviceID.setText(getDeviceID1(telephonyManager)); 
} 
+0

你想改變IMEI嗎?爲什麼? – Lucifer

+0

@Eric,它不是一個重複的Quetsion,它的**不是一個真正的問題**。 – Lucifer

+0

@Lucifer他說話的方式,聽起來好像他想要改變它,以獲得一個*不同的*獨特的設備ID,這是在這篇文章中涵蓋...所以,我想這取決於你如何解釋這個問題。無論哪種方式,投票結束都是投票結束。 – Eric

回答

10

在Android中,您可以獲得三種不同的唯一ID。

  • IMEI(你必須在你的代碼已經)

    TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); 
    String id = (getDeviceID1(telephonyManager)); 
    
  • Device ID

    String android_id = Secure.getString(getContext().getContentResolver(), 
                   Secure.ANDROID_ID); 
    
  • 藍牙地址(這也將是唯一的每個設備)

    private BluetoothAdapter mBtAdapter; 
    
    // Get the local Bluetooth adapter 
    mBtAdapter = BluetoothAdapter.getDefaultAdapter(); 
    String deviceMacAddress = mBtAdapter.getAddress(); 
    
+0

謝謝。我如何在腳本中更改藍牙地址? – ArnoHlaMoe

+0

**你是什麼意思**改變,我沒有正確理解你。 – Lucifer

+0

我的意思是我應該將藍牙地址腳本添加到我的腳本中。 – ArnoHlaMoe