[高通SDM450][Android9.0]禁止电话、短信呼入

文章目录

    • 开发平台基本信息
    • 问题描述
    • 解决方法
      • 禁止电话、短信呼入

开发平台基本信息

芯片: SDM450
版本: Android 9.0
kernel: msm-4.9

问题描述

公司有一款设备,作为校园话机使用,投放安置在中小学校园内,供学生与家长视频通话,因为是学生刷卡计费拨打视频给家长,所以,要求设备不允许电话呼入以及接收短信。

解决方法

禁止电话、短信呼入

其实实现的方式也很简单,Android原生有加入黑名单功能,被加入黑名单的号码则无法呼入,那么,利用这个功能,在判断是否是黑名单的地方,把所有号码都默认为黑名单号码,即可实现我们需要的功能。

diff --git a/src/java/com/android/internal/telephony/BlockChecker.java b/src/java/com/android/internal/telephony/BlockChecker.java
old mode 100644
new mode 100755
index 456be56..9875e8c
--- a/frameworks/opt/telephony/src/java/com/android/internal/telephony/BlockChecker.java
+++ b/frameworks/opt/telephony/src/java/com/android/internal/telephony/BlockChecker.java
@@ -4,6 +4,7 @@ import android.content.Context;
 import android.os.Bundle;
 import android.provider.BlockedNumberContract;
 import android.telephony.Rlog;
+import android.os.SystemProperties;
 
 /**
  * {@hide} Checks for blocked phone numbers against {@link BlockedNumberContract}
@@ -11,6 +12,7 @@ import android.telephony.Rlog;
 public class BlockChecker {
     private static final String TAG = "BlockChecker";
     private static final boolean VDBG = false; // STOPSHIP if true.
+       private static final String TELEPHONY_STATUS_SETTINGS = "persist.custom.telephony_status";
 
     /**
      * Returns {@code true} if {@code phoneNumber} is blocked according to {@code extras}.
@@ -41,6 +43,9 @@ public class BlockChecker {
      * @return {@code true} if the number is blocked. {@code false} otherwise.
      */
     public static boolean isBlocked(Context context, String phoneNumber, Bundle extras) {
+               if(SystemProperties.get(TELEPHONY_STATUS_SETTINGS,"1").equals("0")){
+                       return true;
+               }
         boolean isBlocked = false;
         long startTimeNano = System.nanoTime();
 


注:我这里加了一个属性控制,其实在其他地方,我还写了个广播,客户可通过广播去修改这个属性,从而达到动态启用或者禁用这个功能的效果。

你可能感兴趣的:(Android9.0,framework,Android9.0,禁止电话呼入,禁止短信,黑名单)