在 Android 11(API 级别 30)及更高版本中,平台支持STIR/SHAKEN 协议,以提供一种安全且私密的方法来验证和向接收方传达呼叫者的号码,当拨打电话时。Android 11 及更高版本为应用(如原生拨号器、呼叫筛选和垃圾邮件应用)提供了访问运营商裁决数据的功能。这使应用能够识别垃圾邮件呼叫并在用户接听呼叫之前通知用户。
对于运行 Android 11 及更高版本的设备,使用CallScreeningService API的呼叫筛选和垃圾邮件应用可以访问筛选呼叫的功能,从而增强用户隐私和设备性能。使用此 API,应用无需请求单个权限,并且可以访问通过 Android 10 及更低版本中的标准权限请求无法获得的其他信息。此 API 中提供的数据包括
- 传入或传出呼叫的数量
- 传入呼叫和终止的通知
- 对系统警报窗口的有限访问权限,用于通话中和通话后筛选信息
- 拒绝传入呼叫的能力
- 呼叫时长
- 呼叫断开连接的原因
- STIR/SHAKEN 裁决
实现
拨号器应用、来电筛选应用和垃圾邮件应用应采用 CallScreeningService API。当用户选择应用作为其默认来电显示和垃圾邮件应用时,应用将获得对getCallerNumberVerificationStatus()
方法的访问权限,该方法会显示来自运营商验证机制的 STIR/SHAKEN 协议的 STIR/SHAKEN 判决结果。这使得垃圾邮件呼叫检测成为可能。
此外,来电筛选应用可以通过调用ACTION_POST_CALL
意图操作来实现呼叫后筛选,该操作会启动一个活动,允许用户将呼叫标记为垃圾邮件或将号码添加到其保存的联系人列表中。