如何通过编程方式识别Android设备?

How to identify an Android device programmatically?

本问题已经有最佳答案,请猛点这里访问。

目前,我正在使用mac地址作为Android设备的标识符。

1
2
3
WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiInfo wInfo = wifiManager.getConnectionInfo();
String mac = wInfo.getMacAddress();

但是,我发现对于某些用户的设备,mac是空的。我有点困惑为什么它可能是空的。

如果你能找出原因,那是最好的!

否则,你能提供一个识别Android设备的替代方案吗?


您可以在imei的基础上唯一地识别任何Android手机。

1
2
TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
telephonyManager.getDeviceId();

将权限添加到androidmanifest.xml中:

1
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

在Emulator中,您可能会得到一个类似于0000的…价值。在设备上检查以获取设备ID。


找到Android设备的独特之处,你最好的选择是访问它的序列号。关于如何做到这一点,还有其他几篇文章,但最受关注的是:

如何找到安卓设备的序列号?