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

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

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

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

如果你能弄清楚原因,那就是最好的!

否则,你可以提供一个识别Android设备的替代方法吗?

  • 如何提供选项,以selectWi - Fi或GPRS的networking连接在Android应用程序
  • 使用Android获取当前的互联网速度(移动和Wifi)
  • 以编程方式configuration的android热点的强制门户
  • 从移动到PC的UDP多播
  • 同时访问WiFi LAN(无网关)和移动networking
  • 如何通过wifi从Android发送string到PC
  • 如何以编程方式忘记android中的无线网络?
  • 在热点/绑定模式下Android上的多播支持
  • find一些与Android设备相关的东西最好的select就是访问它的序列号。 关于如何做到这一点,还有几个其他的职位,但最受瞩目的是这里:

    如何findAndroid设备的序列号?

    你可以唯一的基于imei识别任何Android手机。

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

    将权限添加到您的AndroidManifest.xml中:

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

    在模拟器中,你可能会得到一个像0000 …值。 在设备上检查以获取设备ID。