web-dev-qa-db-ja.com

どのようなAndroidアプリケーションにはAndroid.permission.READ_PHONE_STATE権限が必要ですか?

いくつかのAndroidスマートフォンのアプリには、このAndroid.permission.READ_PHONE_STATE権限が必要です。これらを信頼できるかどうかはわかりません。 。Androidアプリのどの機能が通常DeviceIdSimSerialNumberSubscriberIdのような情報を必要とするのか?

25
Wei Yang

電話の状態は、電話に関する多くの情報へのアクセスを提供します。通常の使用法は、電話の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 =

23
Samuel Bolduc

もう1つの考えられる理由は、通話中に音声イベントをミュートできることです。これが、Pandora、Spotifyなどのアプリに許可が必要な理由です。電話がかかってきたときに、自分自身をミュートすることができます。

20
Carl Anderson

少し前、一部のデバイスでは、アプリケーションが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)
2
MikeL