MTK平台上电话黑名单功能总结

本文详细介绍了MTK平台在Android 4.4、5.x和6.0版本上电话黑名单功能的实现方式。在Android 4.4中,黑名单区分了视频电话和普通电话;Android 5.x引入MPlugin架构,移除类型区分;Android 6.0则将黑名单功能独立到Blacklist模块,并对数据库进行了较大改动。查询黑名单时,需要遍历数据库并使用PhoneNumberUtils比较。Android N开始原生支持黑名单,但访问权限受限。
摘要由CSDN通过智能技术生成

作者 Zhonglong.chen


黑名单作为一项非常重要的功能,一直以来Android原生都没有提供支持,因此各芯片厂商都有自己的实现方案。本文总结了MTK平台芯片在Android 4.4,Android 5.x和Android 6.0这三个版本上黑名单功能的实现方式。

MTK平台上以Content Provider的形式提供黑名单数据库的接口,但在三个版本上实现略有差异。

1. Android4.4

l  Number:电话号码

l  Type:枚举型,取值为BLOCK_VOICE_CALL,BLOCK_VIDEO_CALL和BLOCK_VOICE_AND_VIDEO_CALL三种,可见视频电话与普通电话黑名单是可以分开管理的

2. Android5.x

l  Number:电话号码

Android 5.x引入了MPlugin架构,将黑名单数据库放到OPxxPlugin中实现,与Android 4.4相比黑名单数据库变化不大,只是移除Type字段,不再区分视频电话和普通电话。

3. Android6.0

l  PHONE_NUMBER:电话号码

l  NAME:联系人姓名,可为空

Android 6.0将黑名单功能从OPxxPlugin中独立出来,放到单独的Blacklist模块中实现,并且数据库变化也非常大。


表1 MTK平台上三个版本黑名单对比

 

Android 4.4

Android 5.x

Android 6.0

CONTENT_URI

content://reject/list

content://reject/list

content://com.cmcc.ccs.black_list

表结构

Number

Type

Number

PHONE_NUMBER

NAME

访问权限

READ_REJECT & WRITE_REJECT

READ_REJECT & WRITE_REJECT

实现类

未知

OP01Plugin.apk

com.mediatek.phone.callrejection.CallRejectContentProvider

Blacklist.apk

com.mediatek.rcs.blacklist.BlacklistProvider

代表芯片

MT6582

MT6753

MT6755

 

4. 查询黑名单

黑名单数据库中存储的是原始的电话号码,并未进行格式化,因此不能直接通过query方式查询某个号码是否黑名单,而必须读出黑名单中的所有电话号码,再通过PhoneNumberUtils.compare方法逐个进行模糊匹配。

    publicboolean aut

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值