防止来电显示仿冒

在 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 intent 操作来实现通话后过滤,该操作会启动一个 activity,让用户可以将来电标记为骚扰电话,或将号码添加到其已保存的联系人列表中。