Tuesday, 28 March 2017

How can I get android device Unique ID?











I used below code to get android device IMEI and How can I change below code to get android device Unique 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));
}

Answer




In Android, you can get three different Unique Ids.




  • IMEI ( which you have in your code already )



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

  • Device ID




    String android_id = Secure.getString(getContext().getContentResolver(),
    Secure.ANDROID_ID);

  • Bluetooth Address ( this will also be unique for each device )



    private BluetoothAdapter mBtAdapter;

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



No comments:

Post a Comment

c++ - Does curly brackets matter for empty constructor?

Those brackets declare an empty, inline constructor. In that case, with them, the constructor does exist, it merely does nothing more than t...