Call Blocker 黑名单与拦截通话数据
《Call Blocker - Blacklist》是香港开发者 cxzh.ltd(MOUTRENB SCIENCE & TECHNOLOGY LIMITED,商店署名 cxzh.ltd)的 Android 来电拦截应用,与同一工作室的 Private Space 保险箱、杀毒与 Wi-Fi 检测产品同属一个产品线。它占用系统默认来电筛选角色,把呼入号码对照用户自建黑名单、家人/医生白名单,以及隐藏号/私密号与一声响(恶作剧)规则,然后立即挂断或静音并弹出通知。用户可从通讯录或系统通话记录加号,在规则页选择拦截模式,并在拦截历史里查看未读角标;Call Blocker One 是 Google Play 订阅(月付、季付、年付 SKU),用于去广告。约 15.8 万条评价、评分约 3.5,安装量超过一千万,面向想在本机拦截骚扰来电、而不是依赖社区号码库的用户,对标 Truecaller、Hiya、Whoscall、Should I Answer? 与 Calls Blacklist 等云端来电识别产品。
每一通被筛选的呼入,首先是一条名单行:address、可选 name、type(1 黑名单、0 白名单)以及用于查找的 reverse 键,并分别统计 blacklistCount 与 whitelistCount。来电筛选拒接或静音后,历史行带上 block_mode、date、duration、location、呼入/呼出/恶作剧 type 与未读 read。号码标签卡片补充 phonenum、tagName、tagCount 与 updateTime;规则对象保存 antiharass_block_model、antiharass_reject_way 与恶作剧来电开关;Call Blocker One 权益则是 Play 的 sku 加 purchaseToken。
家庭看板把黑名单行重放到第二台手机,事件台账分页拦截历史并清除未读角标,类 MDM 检查对照空的家人白名单审计筛选模式。财务把月付、季付、年付 SKU 与去广告标记对齐。openData Studio 把这些名单、日志、标签、规则与权益字段变成可调用的开放数据。
应用截图
API 端点一览
请求/响应示例为依据应用界面重构的示意示例,并非实时抓包。
列出黑名单或白名单条目
GET
/v1/listsosint分页返回 BlackListActivity / WhiteListActivity 中 nq_black_white 的行,按 type(1 黑名单、0 白名单)过滤,含 address、倒序检索键 reverse 与可选 name。
认证方式: 来电筛选角色的本机会话。范围限于本安装的 nq_black_white 表,无云端账户。
- type
- count
- _id
- name
- address
- reverse
- items
GET /v1/lists?type=1 HTTP/1.1 Accept: application/json X-App-Version: 5.8.12.00{ "type": 1, "count": 2, "items": [ { "_id": 18, "type": 1, "name": "Unknown telemarketer", "address": "+12025550123", "reverse": "32105552021+" }, { "_id": 19, "type": 1, "name": "", "address": "+442079460958", "reverse": "859064970224+" } ] }将号码加入黑名单或白名单
POST
/v1/listsosint创建 BlackWhiteListModel 行(address、name、type)并写入用于查找的 reverse,对应 AddFromContactsActivity 与 AddFromCallLogActivity。
认证方式: 本机会话。写入 nq_black_white;PrivacyDataProvider 也在 blackwhitelist 路径接受 bulkInsert。
- address
- name
- type
- _id
- reverse
POST /v1/lists HTTP/1.1 Content-Type: application/json X-App-Version: 5.8.12.00 { "address": "+12025550123", "name": "Unknown telemarketer", "type": 1 }{ "_id": 18, "address": "+12025550123", "name": "Unknown telemarketer", "type": 1, "reverse": "32105552021+" }更新名单条目
PUT
/v1/lists/{id}osint从 EditDeleteNumActivity 编辑已有黑/白名单行,重写 address、name、type 与 reverse。
认证方式: 本机会话。按 _id 更新 nq_black_white。
- _id
- address
- name
- type
- reverse
- updated
PUT /v1/lists/18 HTTP/1.1 Content-Type: application/json X-App-Version: 5.8.12.00 { "_id": 18, "address": "+12025550123", "name": "Acme telemarketing", "type": 1 }{ "updated": 1, "_id": 18, "address": "+12025550123", "name": "Acme telemarketing", "type": 1, "reverse": "32105552021+" }按号码删除名单条目
DELETE
/v1/listsosint用户在 EditDeleteNumActivity 删除号码时,从黑名单或白名单移除该条目。
认证方式: 本机会话。按规范化号码的 reverse 从 nq_black_white 删除。
- address
- deleted
DELETE /v1/lists?address=%2B12025550123 HTTP/1.1 X-App-Version: 5.8.12.00{ "deleted": 1, "address": "+12025550123" }查询号码是否在名单中
GET
/v1/lists/lookuposint返回某号码的名单 type(1 黑名单 / 0 白名单)与显示 name,以及通讯录 PhoneLookup 是否命中——即 ScreeningService 决定放行、拒接或静音时的检查。
认证方式: ScreeningService.onScreenCall 在构造 CallResponse 前使用的本机会话。
- address
- listed
- type
- name
- inContacts
GET /v1/lists/lookup?address=%2B12025550123 HTTP/1.1 X-App-Version: 5.8.12.00{ "address": "+12025550123", "listed": true, "type": 1, "name": "Unknown telemarketer", "inContacts": false }列出拦截通话历史
GET
/v1/blocked-callsopendata分页返回 BlockCallLogHistoryActivity:每条 nq_calllog 行是 BlockedCallsModel,含 address、name、location、date、duration、type(呼入/呼出/恶作剧)、read 与 block_mode。
认证方式: 本机会话。按 date DESC 读取 nq_calllog。
- count
- unread
- _id
- address
- name
- location
- date
- duration
- type
- read
- block_mode
- items
GET /v1/blocked-calls?unreadOnly=false HTTP/1.1 Accept: application/json X-App-Version: 5.8.12.00{ "count": 1, "unread": 1, "items": [ { "_id": 41, "address": "+12025550123", "name": "Unknown telemarketer", "location": "Washington, DC", "date": 1759411200000, "duration": 0, "type": 1, "read": 0, "block_mode": 1 } ] }记录一次拦截通话
POST
/v1/blocked-callsopendata插入 ScreeningService 拒接后来写的 BlockedCallsModel,含当时的 block_mode 与未读 read=0。
认证方式: ScreeningService 在拒接/静音 CallResponse 之后写入的本机会话。
- address
- name
- location
- date
- duration
- type
- read
- block_mode
- _id
POST /v1/blocked-calls HTTP/1.1 Content-Type: application/json X-App-Version: 5.8.12.00 { "address": "+12025550123", "name": "Unknown telemarketer", "location": "Washington, DC", "date": 1759411200000, "duration": 0, "type": 1, "read": 0, "block_mode": 1 }{ "_id": 41, "address": "+12025550123", "name": "Unknown telemarketer", "location": "Washington, DC", "date": 1759411200000, "duration": 0, "type": 1, "read": 0, "block_mode": 1 }将拦截历史标为已读
POST
/v1/blocked-calls/readopendata清除 BlockCallLogHistoryActivity 的未读角标,可针对单行(_id)或全部日志(所有行 read=1)。
认证方式: 本机会话。更新 nq_calllog.read。
- _id
- read
- updated
- unread
POST /v1/blocked-calls/read HTTP/1.1 Content-Type: application/json X-App-Version: 5.8.12.00 { "_id": 41, "read": 1 }{ "updated": 1, "_id": 41, "read": 1, "unread": 0 }读取或设置拦截规则
GET
/v1/block-rulesopendata返回 BlockRuleActivity 的拦截模式(0–3)、拒接方式、恶作剧来电与短信开关,以及当前黑/白名单条数。
认证方式: 本机会话。取值来自 SharedPreferences nq_antiharass。
- antiharass_block_model
- antiharass_reject_way
- antiharass_block_prank_call
- antiharass_block_prank_call_notification
- antiharass_block_sms
- blacklistCount
- whitelistCount
GET /v1/block-rules HTTP/1.1 Accept: application/json X-App-Version: 5.8.12.00{ "antiharass_block_model": 1, "antiharass_reject_way": 0, "antiharass_block_prank_call": true, "antiharass_block_prank_call_notification": true, "antiharass_block_sms": false, "blacklistCount": 12, "whitelistCount": 4 }更新拦截规则
PUT
/v1/block-rulesopendata持久化 BlockRuleActivity 编辑的筛选策略,使 ScreeningService 在下一通呼入时使用新的 block_model 与 reject_way。
认证方式: 本机会话。写入 nq_antiharass 偏好并广播 com.netqin.antiharass.refresh。
- antiharass_block_model
- antiharass_reject_way
- antiharass_block_prank_call
- antiharass_block_prank_call_notification
- refreshed
PUT /v1/block-rules HTTP/1.1 Content-Type: application/json X-App-Version: 5.8.12.00 { "antiharass_block_model": 2, "antiharass_reject_way": 1, "antiharass_block_prank_call": true, "antiharass_block_prank_call_notification": false }{ "antiharass_block_model": 2, "antiharass_reject_way": 1, "antiharass_block_prank_call": true, "antiharass_block_prank_call_notification": false, "refreshed": true }列出号码标签
GET
/v1/phone-tagsosint返回 AntiharassTagNumberActivity 展示的 PhoneTagInfoModel 行:号码、社区式 tagName、tagCount 以及标签卡片是否已打开。
认证方式: 本机会话。号码标签状态保存在 nq_phonetag 偏好命名空间。
- id
- phonenum
- tagName
- tagCount
- updateTime
- isRead
- items
GET /v1/phone-tags HTTP/1.1 Accept: application/json X-App-Version: 5.8.12.00{ "items": [ { "id": 7, "phonenum": "+12025550123", "tagName": "Telemarketer", "tagCount": "128", "updateTime": 1759411200000, "isRead": false } ] }拉取远程配置
POST
/v1/remote-configopendata加载家庭应用与功能开关读取的 RemoteConfigResp 映射(含 main_romote 交叉推广 id),按安装 country 与 deviceId 区分。
认证方式: 无。请求体用 deviceId、appId、appVersion 与 country 标识安装;userType 标记回访用户。
- appChannel
- appId
- appVerCode
- appVersion
- country
- deviceId
- sdkVerCode
- sdkVersion
- userType
- errorCode
- errorMsg
- result
- config
- update
- main_romote
POST /v1/remote-config HTTP/1.1 Content-Type: application/json X-App-Version: 5.8.12.00 { "appChannel": "gp", "appId": 1001, "appVerCode": 212, "appVersion": "5.8.12.00", "country": "US", "deviceId": "a1b2c3d4e5f6", "sdkVerCode": 1, "sdkVersion": "1.0.0", "userType": 1 }{ "errorCode": 0, "errorMsg": "", "result": { "config": { "main_romote": "1-2-3-4-7-8-9" }, "update": 1759411200000 } }读取 Call Blocker One 权益
GET
/v1/subscriptionopendata返回 Call Blocker One 是否生效,以及 SubscribeActivity 提供的月付 / 季付 / 年付 SKU 中的哪一个。
认证方式: 本应用的 Google Play Billing purchaseToken。SubscribeActivity 在把 SKU 视为有效前先校验本地 RSA 签名。
- sku
- productId
- purchaseToken
- autoRenewing
- entitled
- plans
GET /v1/subscription HTTP/1.1 Authorization: Bearer <play-purchase-token> X-App-Version: 5.8.12.00{ "sku": "subs_callblocker_one_yearly", "productId": "subs_callblocker_one_yearly", "purchaseToken": "opaque-play-token", "autoRenewing": true, "entitled": true, "plans": [ "subs_callblocker_one_monthly", "subs_callblocker_one_3months", "subs_callblocker_one_yearly" ] }
数据类别
- 黑名单
- 白名单
- 拦截通话
- 拦截规则
- 号码标签
- 远程配置
- 订阅
数据使用场景与案例
第二台手机的本机骚扰名单同步
隐私工具导出 GET /v1/lists?type=1(address、name、reverse),再在另一台设备上重放 POST /v1/lists,换机后同一批推销号码仍被拦截。
拦截来电台账
家庭或小办公室看板分页拉取 GET /v1/blocked-calls 的 address、date、block_mode 与未读数,用户看完 ScreeningService 拒接记录后调用 POST /v1/blocked-calls/read。
筛选模式策略审计
类 MDM 检查读取 GET /v1/block-rules(antiharass_block_model、antiharass_reject_way、antiharass_block_prank_call),标出仍停在「仅黑名单」且家人白名单为空的安装。
Call Blocker One 对账
财务把 Play purchaseToken 与 GET /v1/subscription 的 sku / autoRenewing / entitled 对齐,使月付、季付、年付续费与去广告标记一致。
常见问题
Call Blocker 有云端来电识别号码库吗?
没有文档化的共享骚扰图谱。筛选在本地完成:ScreeningService 检查 nq_black_white(address、type、reverse)与 nq_antiharass 开关,再写入 nq_calllog。号码标签(phonenum、tagName、tagCount)是本机卡片,不是 Truecaller 式社区查询。
一条拦截通话用哪些字段标识?
每条 nq_calllog 行含 address、name、location、date、duration、type(1 呼入、2 呼出、0 恶作剧)、read(0 未读 / 1 已读)与 block_mode——即 BlockCallLogHistoryActivity 列出的 BlockedCallsModel。
黑名单和白名单行如何区分?
BlackWhiteListModel.type 为 1 表示黑名单、0 表示白名单。名单接口按该列过滤 nq_black_white,并保存 address 的 reverse,供 ScreeningService 在每通呼入时查找。
什么是 Call Blocker One?
SubscribeActivity 上售卖的 Google Play 订阅。SKU 为 subs_callblocker_one_monthly、subs_callblocker_one_3months 与 subs_callblocker_one_yearly;权益载荷含 sku、purchaseToken、autoRenewing 与 entitled。
与 Call Blocker - Blacklist 相似的应用
- Truecaller: Spam Call Blocker — Truecaller 用社区来电识别图谱标注呼入号码并拦截骚扰;Call Blocker 则对照用户自建的本机黑名单筛选。
- Hiya - Call Blocker & Caller ID — Hiya 用云端信誉服务给呼入打分并可选来电显示;本应用通过系统来电筛选和本机名单在设备上做决定。
- Whoscall - Caller ID & Block — Whoscall(Gogolook)是东亚常用的来电显示与骚扰拦截应用,依赖共享号码库,而非私有 SQLite 黑名单。
- Should I Answer? — Should I Answer? 是靠社区评分众包骚扰举报的来电拦截应用;Call Blocker 使用用户手输或导入的明确黑/白名单行。
- Calls Blacklist - Call Blocker — Calls Blacklist 是另一款 Android 本机拦截名单工具,形态上最接近本应用的 nq_black_white 加拦截通话日志。
相关主题
- Call Blocker API
- 黑名单
- 白名单
- 拦截通话
- block_mode
- 号码标签
- Call Blocker One
- cxzh.ltd
- 来电筛选
- 骚扰来电日志
需要集成这个 App 的数据 API?
我们可为任意指定 App 交付定制集成——源码交付 USD 500 起,或托管 API 按调用计费。告诉我们您需要的数据即可。
- 每个项目均签 NDA 与 SOW
- 3–7 天交付
- 验收通过后才付款
- 仅在授权范围内作业