mtk,高通原生黑名单联系人无法拦截

来源:互联网 发布:手机录像机软件 编辑:程序博客网 时间:2024/06/07 07:38

其实这个问题很简单,号码匹配失败导致,有些卡来电时号码会带有国际码:例如来电号码我们看到的是18296116606,但实际上我们看日志会发现这些号码是带有+8618296116606,在黑名单号码匹配时就失败了。这种问题有几种修改方式第一种是在

frameworks\opt\telephony\src\java\com\android\internal\telephony\BlockChecker.java

 public static boolean isBlocked(Context context, String phoneNumber) {
        boolean isBlocked = false;
        long startTimeNano = System.nanoTime();

        try {
            /*
             * 具体修改如下
             */
            //BlockedNumberContract.SystemContract.shouldSystemBlockNumber(context, phoneNumber)
        Rlog.d(TAG, phoneNumber + " isBlocked ="+BlockedNumberContract.isBlocked(context,phoneNumber));
            if (phoneNumber != null && (BlockedNumberContract.isBlocked(context,phoneNumber) || 
            BlockedNumberContract.isBlocked(context,phoneNumber.replaceAll("+86","")))) {

                Rlog.d(TAG, phoneNumber + " is Blocked ");
                isBlocked = true;
            }
            /*
             * tfs:43706 modify by ovvi zhuxingchong
             * 2017/7/6 end
             */
        } catch (Exception e) {
            Rlog.e(TAG, "Exception checking for blocked number: " + e);
        }


        int durationMillis = (int) ((System.nanoTime() - startTimeNano) / 1000000);
        if (durationMillis > 500 || VDBG) {
            Rlog.d(TAG, "Blocked number lookup took: " + durationMillis + " ms.");
        }
        return isBlocked;
    }

第二种是在黑名单号码数据库查询的时候添加各国的国际码同时匹配,这种方式暂时没做应该是可以实现。

原创粉丝点击