From f5fd2cd9e97a567ee7a2613bc1c8960cc1a7a28d Mon Sep 17 00:00:00 2001 From: Aron Bordin Date: Wed, 22 Apr 2015 23:40:52 -0300 Subject: [PATCH] fix #107 - Use Android_ID instead of IMEI --- plyer/facades/uniqueid.py | 9 ++++----- plyer/platforms/android/uniqueid.py | 13 +++++-------- 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/plyer/facades/uniqueid.py b/plyer/facades/uniqueid.py index 111ed99b2..5fd57bda1 100644 --- a/plyer/facades/uniqueid.py +++ b/plyer/facades/uniqueid.py @@ -3,15 +3,14 @@ class UniqueID(object): Returns the following depending on the platform: - * **Android**: IMEI + * **Android**: Android ID * **Mac OSX**: Serial number of the device * **Linux**: Serial number using lshw * **Windows**: MachineGUID from regkey - - .. note:: - On Android your app needs the READ_PHONE_STATE permission - + .. versionadded:: 1.2.0 + + .. versionchanged:: 1.2.4 On Android returns Android ID instead of IMEI ''' @property diff --git a/plyer/platforms/android/uniqueid.py b/plyer/platforms/android/uniqueid.py index 0c21a8da1..1d77f4a8d 100644 --- a/plyer/platforms/android/uniqueid.py +++ b/plyer/platforms/android/uniqueid.py @@ -1,18 +1,15 @@ -from jnius import autoclass, cast +from jnius import autoclass from plyer.platforms.android import activity from plyer.facades import UniqueID -TelephonyManager = autoclass('android.telephony.TelephonyManager') -Context = autoclass('android.content.Context') - +Secure = autoclass('android.provider.Settings$Secure') class AndroidUniqueID(UniqueID): def _get_uid(self): - manager = cast('android.telephony.TelephonyManager', - activity.getSystemService(Context.TELEPHONY_SERVICE)) - return manager.getDeviceId() + return Secure.getString(activity.getContentResolver(), + Secure.ANDROID_ID) def instance(): - return AndroidUniqueID() + return AndroidUniqueID() \ No newline at end of file