防止来电显示欺骗

在 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 意图操作来实施通话后筛选,该操作将启动一个活动,允许用户将通话标记为垃圾邮件或将号码添加到其已保存的联系人列表中。