Unique identifier for Android phone
<p>I'm building Android application which needs to identify device by some unique number/string.</p>

<p>I've heard about <a href="http://www.anddev.org/code-snippets-for-android-f33/how-to-uniquely-identify-an-android-device-android-id-t6394.html" rel="nofollow">ANDROID_ID</a> but there are also reports that it can be the same on some phone models or even updates.
Another thing is that it is recreated after factory reset or system reinstall. I can live with that although I would prefer if it stayed the same.</p>

<p>Is there another way to identify the phone without asking for more permissions? IMEI requires them(android.permission.READ_PHONE_STATE) but it can scare away users.</p>

<p>How Shazam does that? I know it identifies the phone permanently (it remembers that I was a user before it introduced 5 tags a month restriction for new users) even though I completely reinstalled the system. </p>
