Ben*_*oot 8 android telephonymanager android-permissions phone-state-listener
我正在将Android 6.0运行时权限应用到监听运营商数据连接状态更改的应用程序中.我首先尝试从清单中删除READ_PHONE_STATE以检查应用程序需要权限的位置.令我惊讶的是,应用程序根本没有崩溃.
在此之后,我尝试在两个6.0之前的设备上进行相同的安装,这些设备实际上已经崩溃了.对我来说,似乎Android 6.0不再需要许可.有什么方法可以证实吗?
下面的行是6.0之前设备崩溃的行:
tm(TelephonyManager).listen(this, PhoneStateListener.LISTEN_DATA_CONNECTION_STATE);
Run Code Online (Sandbox Code Playgroud)
Mat*_*ini 16
有什么方法可以证实吗?
是的,此提交删除了READ_PHONE_STATE注册事件类型时的请求LISTEN_CALL_STATE,LISTEN_DATA_ACTIVITY并且LISTEN_DATA_CONNECTION_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
Run Code Online (Sandbox Code Playgroud)
developer.android.com上的文档已更新,并正确显示不需要该权限.
如果您的代码READ_PHONE_STATE除了以外的其他原因不需要权限,LISTEN_DATA_CONNECTION_STATE您可以更改AndroidManifest.xml添加maxSdkVersion到uses-permission:
<uses-permission android:name="android.permission.READ_PHONE_STATE" android:maxSdkVersion="22" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2387 次 |
| 最近记录: |