title: How to identify an Android device programmatically?
body: <p>Currently, I am using MAC address as the identifier for an Android device.</p>
  
  <pre><code>WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
  WifiInfo wInfo = wifiManager.getConnectionInfo();
  String mac = wInfo.getMacAddress();
  </code></pre>
  
  <p>However, I found the <code>mac</code> is empty for some users' devices. I am a little confused why it could be empty. </p>
  
  <p>If you could figure out the reason, that's the best!</p>
  
  <p>Otherwise, could you provide an alternative for identifying an Android device? </p>