由于 Android 6.0 听 PhoneStateListener.LISTEN_DATA_CONNECTION_STATE 的变化似乎不再需要 READ_PHONE_STATE 权限
Since Android 6.0 listening to the PhoneStateListener.LISTEN_DATA_CONNECTION_STATE changes seems to no longer require READ_PHONE_STATE permission
我正在将 Android 6.0 运行时权限应用到侦听运营商数据连接状态更改的应用程序中。我首先尝试从清单中删除 READ_PHONE_STATE 以检查应用程序在哪里需要权限。令我惊讶的是,该应用程序根本没有崩溃。
在此之后,我在两台 6.0 之前的设备上尝试了相同的安装,但实际上确实崩溃了。对我来说,似乎 Android 6.0 不再需要许可。有什么方法可以确认吗?
下一行是 6.0 之前的设备崩溃的行:
tm(TelephonyManager).listen(this, PhoneStateListener.LISTEN_DATA_CONNECTION_STATE);
官方 android 文档中没有列出 PhoneStateListener.LISTEN_DATA_CONNECTION_STATE
的特殊权限。
Is there any way to confirm this?
是的,这个commit在注册事件类型LISTEN_CALL_STATE
、LISTEN_DATA_ACTIVITY
和LISTEN_DATA_CONNECTION_STATE
时删除了READ_PHONE_STATE
的请求:
Do not enforce PHONE_STATE_PERMISSION to register listener PHONE_STATE_PERMISSION should not be required to register to the following event types:
- PhoneStateListener.LISTEN_CALL_STATE
- PhoneStateListener.LISTEN_DATA_ACTIVITY
- PhoneStateListener.LISTEN_DATA_CONNECTION_STATE
In case of LISTEN_CALL_STATE, an empty string should be passed instead of incomingNumber, when caller has no PHONE_STATE_PERMISSION.
Bug: 21588537 Change-Id: I5b6d0308924f7e4cd13a983b8e0c9b3a5bbb119b
developer.android.com 上的文档已更新并正确显示不需要权限。
如果您的代码由于 LISTEN_DATA_CONNECTION_STATE
之外的其他原因不需要 READ_PHONE_STATE
权限,您可以更改 AndroidManifest.xml
,将 maxSdkVersion
添加到 uses-permission
:
<uses-permission android:name="android.permission.READ_PHONE_STATE" android:maxSdkVersion="22" />
我正在将 Android 6.0 运行时权限应用到侦听运营商数据连接状态更改的应用程序中。我首先尝试从清单中删除 READ_PHONE_STATE 以检查应用程序在哪里需要权限。令我惊讶的是,该应用程序根本没有崩溃。
在此之后,我在两台 6.0 之前的设备上尝试了相同的安装,但实际上确实崩溃了。对我来说,似乎 Android 6.0 不再需要许可。有什么方法可以确认吗?
下一行是 6.0 之前的设备崩溃的行:
tm(TelephonyManager).listen(this, PhoneStateListener.LISTEN_DATA_CONNECTION_STATE);
官方 android 文档中没有列出 PhoneStateListener.LISTEN_DATA_CONNECTION_STATE
的特殊权限。
Is there any way to confirm this?
是的,这个commit在注册事件类型LISTEN_CALL_STATE
、LISTEN_DATA_ACTIVITY
和LISTEN_DATA_CONNECTION_STATE
时删除了READ_PHONE_STATE
的请求:
Do not enforce PHONE_STATE_PERMISSION to register listener PHONE_STATE_PERMISSION should not be required to register to the following event types:
- PhoneStateListener.LISTEN_CALL_STATE
- PhoneStateListener.LISTEN_DATA_ACTIVITY
- PhoneStateListener.LISTEN_DATA_CONNECTION_STATE
In case of LISTEN_CALL_STATE, an empty string should be passed instead of incomingNumber, when caller has no PHONE_STATE_PERMISSION.
Bug: 21588537 Change-Id: I5b6d0308924f7e4cd13a983b8e0c9b3a5bbb119b
developer.android.com 上的文档已更新并正确显示不需要权限。
如果您的代码由于 LISTEN_DATA_CONNECTION_STATE
之外的其他原因不需要 READ_PHONE_STATE
权限,您可以更改 AndroidManifest.xml
,将 maxSdkVersion
添加到 uses-permission
:
<uses-permission android:name="android.permission.READ_PHONE_STATE" android:maxSdkVersion="22" />