权限问题专项文章已经对位置、短信、存储、悬浮窗、通知栏权限的合理使用场景、不合理使用场景进行了详细说明,本文将对电话权限的合理使用场景、不合理使用场景进行梳理总结。下图为《绿标5.0安全标准》对于电话权限的要求:
1. android.permission.CALL_PHONE
权限定义:授权应用可以不经过用户点击拨号盘确认,直接拨打号码。
合理使用场景
1)出行导航类:在用车的场景下,用一键报警、安全专线保护网约车乘客安全;
2)实用工具类:①智慧语音助手拨打电话场景:在智慧语音助手页面,点击拾音按钮,说出“打电话给xx”的内容执行打电话操作;或者当手机与车机成功配对后,打开车机端,唤醒语音“打电话给xxx”,可申请此权限;②查找手机、远程锁定手机场景,用户操作锁定设备的时候如果留下自己或者家人的联系方式,当手机锁定成功后,该联系方式会显示在锁定页面,在锁屏页面可一键回拨电话,提高找回手机的几率,可申请此权限;
3)运动健康类:在部分手表、手环(可拆卸式)设备上添加常用联系人后,当手表发起通话时,App直接拉起系统拨号功能,可申请此权限。
不合理使用场景
1)出行导航类:在用车的场景下,联系对方虚拟电话(如司机、乘客、货主等);
2)在用户拨打经销商、客服、商家(电话购票等方式)、机构电话等场景下进行电话咨询时。
总结:对于拨打电话功能,禁止申请CALL_PHONE权限(以上合理场景应用需要保证不滥用该权限)。建议开发者可以使用Intent.Action_DIAL,启动Android系统的拨号应用程序,调起拨号界面,然后由用户进行手动拨号。这种方式不需要任何权限的设置。
2. android.permission.READ_PHONE_NUMBERS
权限定义:读取手机号码。
合理使用场景
实用工具类:在查找设备、定位设备的场景下,当机主定位到丢失设备时,会将丢失设备中SIM卡的电话号码读取并显示在应用页面上,方便机主了解当前手机上的手机号,联系对方归还手机。
不合理使用场景
在用户一键注册、登录、认证,采集电话信息的场景下,不允许申请此权限。
3. android.permission.ANSWER_PHONE_CALLS
权限定义:授权应用可以接听来电。
合理使用场景
1)实用工具类:在智慧语音类应用以及车机端界面接听电话的场景中,打开语音控制呼叫设置,实现“接听电话”或者“挂断电话”等功能;
2)运动健康类:手表等穿戴设备与手机成功配对后,当有电话呼入时,穿戴设备上会显示来电信息,运动健康等应用通过调用此权限系统接口拒接当前手机上的来电等场景;
3)影音娱乐类:视频VR等场景下,进入VR界面后,当有电话呼入时,可以接听或者拒绝来电。
不合理使用场景
主题、铃声类App的来电秀功能使用此权限实现接听或挂断电话功能,是不合理的。原则上不允许使用该权限(上述合理场景除外,应用需保证不得滥用此权限)。
4. android.permission.READ_PHONE_STATE
权限定义:授权应用可以获取设备PhoneAccount中注册的设备信息。(注释:在安卓9及之前版本,使用此权限可以获取IMSI、IMEI、SN等设备信息;在安卓10及之后版本,使用此权限无法获得设备不可重置标识符信息,包括IMEI和SN。)授权此权限后也可以获取手机通话状态,例如来电、响铃中、通话中等。
不合理使用场景
1)主题、铃声类App的来电秀功能使用此权限实现监听来电功能;
2)应用获取手机通话状态,判断用户使用应用的通话/媒体播放功能/账目语音播报功能与手机通话状态是否冲突;
3)应用获取手机身份信息,用于追踪定位启动某App时出现的bug、崩溃等问题;
4)在一键登录、认证的场景下,应用获取设备信息和本机号码,判断用户是否切换登录设备;
5)在秒杀、限量抢购等场景下,用于标识唯一的用户,防止出现刷单行为;
6)基于设备信息区分用户使用设备情况,对数据进行统计分析,推荐个性化新闻、个性化商品等。
总结:应用数据统计、广告推荐、用户画像等业务场景下,不需要不可重置的设备标识符(如IMEI、SN),如果需要获取相关设备信息,可替代的方案如下:
以上就是电话权限的内容,后续还会发布通讯录、无障碍、设备管理器内容,请持续关注软件绿色联盟。