16

重複の可能性:
一意の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));
}
4

1 に答える 1

23

Androidでは、3つの異なる一意のIDを取得できます。

  • IMEI(コードにすでに含まれています)

    TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
    String id =  (getDeviceID1(telephonyManager));
    
  • デバイスID

    String android_id = Secure.getString(getContext().getContentResolver(),
                                                    Secure.ANDROID_ID); 
    
  • Bluetoothアドレス(これもデバイスごとに一意になります)

    private BluetoothAdapter mBtAdapter;
    
    // Get the local Bluetooth adapter
    mBtAdapter = BluetoothAdapter.getDefaultAdapter();
    String deviceMacAddress = mBtAdapter.getAddress();
    
于 2012-08-30T06:22:04.423 に答える