问题
I use the command: adb devices to list the attached devices. On my computer I get : List of devices attached HT9CTP820988 device
My question is: how can I get this id (HT9CTP820988) programmatically ?
回答1:
What you're seeing with the adb devices
command is the serial number:
Serial number — A string created by adb to uniquely identify an emulator/device instance by its console port number. The format of the serial number is -. Here's an example serial number: emulator-5554
(refererence: http://developer.android.com/guide/developing/tools/adb.html)
When you ask "how can I get this id programmatically" what exactly do you mean? From an Android app or from a desktop app?
回答2:
How about this one?
http://developer.android.com/reference/android/provider/Settings.Secure.html#ANDROID_ID
edit: Hmm I recall this, it can't be right; the ANDROID_ID is supposed to be 64-bit. Maybe the string you see is given by the USB driver?
回答3:
Look at Settings.ACTION_DEVICE_INFO_SETTINGS and answers that have already been given in the past How to find serial number of Android device?
回答4:
I think the emulator id's purpose is to identify the emulator and devices in the development environment. And it may not be accessible from the phone.
回答5:
It's possible by changing *strings_dev* struct from drivers/usb/gadget/android.c
回答6:
I'm Using the following code...
String aid = Settings.Secure.getString(getContext().getContentResolver(), "android_id");
Object obj = null;
try {
((MessageDigest) (obj = MessageDigest.getInstance("MD5"))).update( aid.getBytes(), 0, aid.length());
obj = String.format("%032X", new Object[] { new BigInteger(1, ((MessageDigest) obj).digest()) });
} catch (NoSuchAlgorithmException localNoSuchAlgorithmException) {
obj = aid.substring(0, 32);
}
来源:https://stackoverflow.com/questions/4450425/android-device-id-not-imei