いくつかのAndroidスマートフォンのアプリには、このAndroid.permission.READ_PHONE_STATE権限が必要です。これらを信頼できるかどうかはわかりません。 。Androidアプリのどの機能が通常DeviceId
、SimSerialNumber
、SubscriberId
のような情報を必要とするのか?
電話の状態は、電話に関する多くの情報へのアクセスを提供します。通常の使用法は、電話のIMEIと電話番号を読み取ることです。これは、システムであなたを識別するのに役立ちます。
また、アプリケーションがAndroid 1.5以前と互換性がある場合、この権限は当時存在せず、Playストアによってそれらのアプリに自動的に追加されるため、必要になる場合があります
もう1つの考えられる理由は、通話中に音声イベントをミュートできることです。これが、Pandora、Spotifyなどのアプリに許可が必要な理由です。電話がかかってきたときに、自分自身をミュートすることができます。
少し前、一部のデバイスでは、アプリケーションがSMSを送信する場合はAndroid.permission.READ_PHONE_STATEを追加する必要があることを発見しました。おそらく場合によっては、SmsManagerはSMSを送信する前に電話の状態に関する情報を取得しようとします。
たとえば、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)