Przeglądaj źródła

优化电信sim卡通过拨打电话获取本机号码

weizhengliang 2 lat temu
rodzic
commit
5de10114ef

+ 13 - 5
home/src/main/code/com/wdkl/ncs/android/component/home/service/PhoneStateReceiver.java

@@ -10,6 +10,7 @@ import android.util.Log;
 
 
 import com.wdkl.ncs.android.component.home.activity.SmsReceivedActivity;
 import com.wdkl.ncs.android.component.home.activity.SmsReceivedActivity;
 import com.wdkl.ncs.android.component.home.settingconfig.SettingConfig;
 import com.wdkl.ncs.android.component.home.settingconfig.SettingConfig;
+import com.wdkl.ncs.android.component.home.util.AppUtils;
 import com.wdkl.ncs.android.component.home.util.HandleTcpConnect;
 import com.wdkl.ncs.android.component.home.util.HandleTcpConnect;
 import com.wdkl.ncs.android.component.home.util.PhoneCallUtil;
 import com.wdkl.ncs.android.component.home.util.PhoneCallUtil;
 import com.wdkl.ncs.android.component.home.util.RecordHelper;
 import com.wdkl.ncs.android.component.home.util.RecordHelper;
@@ -56,11 +57,18 @@ public class PhoneStateReceiver extends BroadcastReceiver {
 
 
             //如果是运营商短信且是点击了号码查询才提示
             //如果是运营商短信且是点击了号码查询才提示
             if (("10001".equals(address) || SettingConfig.getOperatorNumber(context).equals(address)) && Constants.Companion.getSmsCheck()) {
             if (("10001".equals(address) || SettingConfig.getOperatorNumber(context).equals(address)) && Constants.Companion.getSmsCheck()) {
-                Intent smsIntent = new Intent(context, SmsReceivedActivity.class);
-                smsIntent.putExtra("address", address);
-                smsIntent.putExtra("sms_data", fullMessage);
-                smsIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-                context.startActivity(smsIntent);
+                String regex = "(1[3-9][0-9])\\d{8}";
+                boolean find = AppUtils.checkMobileNumber(fullMessage, regex);
+
+                if (find) {
+                    Intent smsIntent = new Intent(context, SmsReceivedActivity.class);
+                    smsIntent.putExtra("address", address);
+                    smsIntent.putExtra("sms_data", fullMessage);
+                    smsIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+                    context.startActivity(smsIntent);
+                } else {
+                    Log.e(TAG, "find no phone number!!!");
+                }
             }
             }
             Log.e(TAG, "received sms: " + fullMessage + ", address: " + address + ", check: " + Constants.Companion.getSmsCheck());
             Log.e(TAG, "received sms: " + fullMessage + ", address: " + address + ", check: " + Constants.Companion.getSmsCheck());
         } else if (action.equals(Intent.ACTION_NEW_OUTGOING_CALL)) {
         } else if (action.equals(Intent.ACTION_NEW_OUTGOING_CALL)) {

+ 13 - 0
home/src/main/code/com/wdkl/ncs/android/component/home/util/AppUtils.java

@@ -60,4 +60,17 @@ public class AppUtils {
 
 
         return "";
         return "";
     }
     }
+
+    public static boolean checkMobileNumber(String str, String reg){
+        if (TextUtils.isEmpty(str)) {
+            return false;
+        }
+
+        // 将给定的正则表达式编译到模式中
+        Pattern pattern = Pattern.compile(reg);
+        // 创建匹配给定输入与此模式的匹配器。
+        Matcher matcher = pattern.matcher(str);
+        //查找字符串中是否有符合的子字符串
+        return matcher.find();
+    }
 }
 }