什么样的安卓应用程序需要android.permission.READ_PHONE_STATE许可



我看到手机上的一些Android应用程序需要此android.permission.READ_PHONE_STATE权限。我不知道我是否可以信任他们。我知道此权限将使应用程序可以访问许多信息。我对Android应用程序中的哪些功能通常需要DeviceIdSimSerialNumberSubscriberId等信息特别感兴趣?

电话状态提供对有关电话的大量信息的访问。通常的用法是读取手机的IMEI和电话号码。这对于在他们的系统中识别您的身份很有用。

如果应用程序与Android 1.5或更低版本兼容,也可能需要它,因为当时不存在此权限,并且由Play商店自动添加到这些应用程序中。

另请参阅:https://android.stackexchange.com/questions/605/why-do-so-many-applications-require-permission-to-read-the-phone-state-and-ident

另一个可能的原因是,如果您正在通话,他们可以将音频事件静音。这就是为什么像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)

最新更新