Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

DeviceId and app permissions

My app (S Educate) requires me to get the DeviceId (for Analytics/Recommendations) and hence I added the permission, READ_PHONE_STATE and although the documentation is harmless, when the user installs, the app permissions window shows, "Phone Calls - Monitor, record, and process phone calls" which obviously prevents user from installing and users have informed that they are not installing simply because of this permission.

screenshot
Screenshot (click for larger variant)

Here are my options:

  1. I state clearly in my app description that I require this permission to get DeviceId and not to monitor/record phone calls and hope the users believe me and install the app
  2. I find an alternate way to get DeviceId - which to my knowledge is not available without using the above mentioned permission

Please advise how do I get around this permission issue.

like image 753
Anil Gorthy Avatar asked Dec 12 '22 08:12

Anil Gorthy


2 Answers

Please use an app-generated UUID. This will allow you to distinguish one app installation from another, without violating user privacy.

like image 164
CommonsWare Avatar answered Dec 13 '22 22:12

CommonsWare


There are different ways you can retrieve Unique device id in Android.

  1. IMEI (for this, You will need to add READ_PHONE_STATE Permission in Manifest)
  2. Pseudo Unique ID (no need to add READ_PHONE_STATE permission)
  3. Android ID
  4. MAC Address

Check out the details below. http://www.pocketmagic.net/2011/02/android-unique-device-id/#.UsMCatIW2vE

like image 29
Kanak Sony Avatar answered Dec 13 '22 22:12

Kanak Sony