我在我的手机上看到一些Android应用程序需要“android.permission.READ_PHONE_STATE”权限。 我不知道是否可以信任它们。 我知道这个权限会让应用程序访问许多信息。 我特别想知道一个Android应用程序通常需要像“DeviceId”,“SimSerialNumber”,“SubscriberId”之类的信息来完成什么功能?
手机状态提供了许多关于手机的信息。通常用途是读取您的手机IMEI和电话号码。这可以用于在系统中识别您。
如果应用程序兼容Android 1.5或更低版本,则还可能需要该权限,因为当时该权限不存在,并由Play商店自动添加到这些应用中。
另一个可能的原因是,当你正在通话时,他们可以静音音频事件。这就是为什么像 Pandora、Spotify 等应用程序需要此权限——以便在你接到电话时将自己静音。
不久前,我发现如果您的应用程序发送短信,则应为某些设备添加android.permission.READ_PHONE_STATE。可能在某些情况下,SmsManager在发送短信之前尝试检索有关手机状态的某些信息。
例如,对于华为GRA-L09,会出现异常:
java.lang.SecurityException: Requires READ_PHONE_STATE: Neither user 10174 nor current process has android.permission.READ_PHONE_STATE.
at android.os.Parcel.readException(Parcel.java:1543)
at android.os.Parcel.readException(Parcel.java:1496)
at com.android.internal.telephony.ISms$Stub$Proxy.s! endMultipartTextForSubscriber(ISms.java:1224)
at android.telephony.SmsManager.sendMultipartTextMessage(SmsManager.java:404)