什么样的Android应用程序需要android.permission.READ_PHONE_STATE权限?

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

  • 是否可以在Android中拥有“可选”权限?
  • 如何使用gradle构建Android应用时删除特定权限?
  • Android权限:我怎样才能了解哪些危险与正常相比?
  • Android:通过AOSP源代码创建新的系统权限。
  • android权限唤醒锁有什么用?
  • 如何在安装或删除其他应用程序时使我的应用程序接收广播
  • 我是否必须声明WRITE_EXTERNAL_STORAGE和READ_EXTERNAL_STORAGE?
  • 如何使用系统权限编译Android应用程序
  • 电话状态提供对手机的大量信息的访问。 通常的用法是阅读手机的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可能会在发送短信之前尝试检索有关手机状态的一些信息。

    例如,为HUAWEI 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)