|
@@ -32,7 +32,7 @@ import me.yoqi.mobile.info.PhoneInfo;
|
|
|
import me.yoqi.mobile.info.SmsInfo;
|
|
|
|
|
|
/**
|
|
|
- * 广播类,监听短信
|
|
|
+ * 骞挎挱绫伙紝鐩戝惉鐭�俊
|
|
|
*
|
|
|
* @author emmet7life@yahoo.cn
|
|
|
* */
|
|
@@ -43,21 +43,21 @@ public class BroadCastTool extends BroadcastReceiver {
|
|
|
static HashMap<String, PhoneInfo> mPhoneMap = new HashMap<String, PhoneInfo>();
|
|
|
static HashMap<String, SmsInfo> mSMSMap = new HashMap<String, SmsInfo>();
|
|
|
|
|
|
- public static final String SMS_SYSTEM_ACTION = "android.provider.Telephony.SMS_RECEIVED";// 接收短信的ACTION标识
|
|
|
+ public static final String SMS_SYSTEM_ACTION = "android.provider.Telephony.SMS_RECEIVED";// 鎺ユ敹鐭�俊鐨凙CTION鏍囪瘑
|
|
|
public static final String SYSTEM_BOOT_COMPLETED = "android.intent.action.BOOT_COMPLETED";
|
|
|
- public static final String SMS_RECEIVED_ACTION = "com.ldci.t56.mobile.safe.SMS_RECEIVED_ACTION";// 当收到垃圾短信时发出广播的ACTION标识
|
|
|
- public static final String CALL_RECEIVED_ACTION = "com.ldci.t56.mobile.safe.CALL_RECEIVED_ACTION";// 当收到垃圾短信时发出广播的ACTION标识
|
|
|
- public static final String AUTO_START_SERVICE = "com.ldci.t56.mobile.safe.AUTO_START_SERVICE";//接收系统启动的广播
|
|
|
- public static String SMS_PHONENUMBER;//接收短信号码
|
|
|
- public static String SMS_CONTENT;//接收短信内容
|
|
|
- private DbAdapter mDbAdapter;//操作数据库
|
|
|
- private ITelephony iTelephony;//挂断电话的一个对象
|
|
|
- private TelephonyManager telephonyMgr;//电话管理类
|
|
|
- public SharedPreferences mSharedPreferences;//存储基本数据类的共享类
|
|
|
- private boolean isReceiveCall;//是否接收电话
|
|
|
- private boolean isAutoStartWithPhone;//是否随系统启动
|
|
|
- private boolean isReceiveSMS;//是否接收短信
|
|
|
- private String mUndisturbedMode;//夜间模式信息
|
|
|
+ public static final String SMS_RECEIVED_ACTION = "com.ldci.t56.mobile.safe.SMS_RECEIVED_ACTION";// 褰撴敹鍒板瀮鍦剧煭淇℃椂鍙戝嚭骞挎挱鐨凙CTION鏍囪瘑
|
|
|
+ public static final String CALL_RECEIVED_ACTION = "com.ldci.t56.mobile.safe.CALL_RECEIVED_ACTION";// 褰撴敹鍒板瀮鍦剧煭淇℃椂鍙戝嚭骞挎挱鐨凙CTION鏍囪瘑
|
|
|
+ public static final String AUTO_START_SERVICE = "com.ldci.t56.mobile.safe.AUTO_START_SERVICE";//鎺ユ敹绯荤粺鍚�姩鐨勫箍鎾�
|
|
|
+ public static String SMS_PHONENUMBER;//鎺ユ敹鐭�俊鍙风爜
|
|
|
+ public static String SMS_CONTENT;//鎺ユ敹鐭�俊鍐呭�
|
|
|
+ private DbAdapter mDbAdapter;//鎿嶄綔鏁版嵁搴�
|
|
|
+ private ITelephony iTelephony;//鎸傛柇鐢佃瘽鐨勪竴涓��璞�
|
|
|
+ private TelephonyManager telephonyMgr;//鐢佃瘽绠$悊绫�
|
|
|
+ public SharedPreferences mSharedPreferences;//瀛樺偍鍩烘湰鏁版嵁绫荤殑鍏变韩绫�
|
|
|
+ private boolean isReceiveCall;//鏄�惁鎺ユ敹鐢佃瘽
|
|
|
+ private boolean isAutoStartWithPhone;//鏄�惁闅忕郴缁熷惎鍔�
|
|
|
+ private boolean isReceiveSMS;//鏄�惁鎺ユ敹鐭�俊
|
|
|
+ private String mUndisturbedMode;//澶滈棿妯″紡淇℃伅
|
|
|
|
|
|
public BroadCastTool() {
|
|
|
SMS_PHONENUMBER = new String();
|
|
@@ -66,7 +66,7 @@ public class BroadCastTool extends BroadcastReceiver {
|
|
|
|
|
|
@Override
|
|
|
public void onReceive(Context context, Intent intent) {
|
|
|
- // 读取配置文件信息:实时读取
|
|
|
+ // 璇诲彇閰嶇疆鏂囦欢淇℃伅锛氬疄鏃惰�鍙�
|
|
|
SharedPreferences settings = context.getSharedPreferences("DEMO",Context.MODE_PRIVATE);
|
|
|
SMScontent_01 = settings.getString("smartE01", "");
|
|
|
SMScontent_02 = settings.getString("smartE02", "");
|
|
@@ -74,28 +74,28 @@ public class BroadCastTool extends BroadcastReceiver {
|
|
|
isAutoStartWithPhone = mSharedPreferences.getBoolean("isAutoStartWithPhone", false);
|
|
|
isReceiveCall = mSharedPreferences.getBoolean("isReceiveCall", false);
|
|
|
isReceiveSMS = mSharedPreferences.getBoolean("isReceiveSMS", false);
|
|
|
- mUndisturbedMode = mSharedPreferences.getString("UndisturbedMode", "关闭");
|
|
|
+ mUndisturbedMode = mSharedPreferences.getString("UndisturbedMode", "鍏抽棴");
|
|
|
|
|
|
- // 监听开机广播,实现开机自动启动软件
|
|
|
+ // 鐩戝惉寮€鏈哄箍鎾�紝瀹炵幇寮€鏈鸿嚜鍔ㄥ惎鍔ㄨ蒋浠�
|
|
|
if (intent.getAction().equals(SYSTEM_BOOT_COMPLETED)) {
|
|
|
if (isAutoStartWithPhone) {
|
|
|
Intent mIntent = new Intent(AUTO_START_SERVICE);
|
|
|
- context.startService(mIntent);// 启动服务
|
|
|
+ context.startService(mIntent);// 鍚�姩鏈嶅姟
|
|
|
}
|
|
|
}
|
|
|
- // 监听短信广播,实现拦截垃圾短信
|
|
|
+ // 鐩戝惉鐭�俊骞挎挱锛屽疄鐜版嫤鎴�瀮鍦剧煭淇�
|
|
|
if (intent.getAction().equals(SMS_SYSTEM_ACTION)) {
|
|
|
- // 1.拒收短信的优先级最高,在最前面判断
|
|
|
+ // 1.鎷掓敹鐭�俊鐨勪紭鍏堢骇鏈€楂橈紝鍦ㄦ渶鍓嶉潰鍒ゆ柇
|
|
|
if (isReceiveSMS) {
|
|
|
- Toast.makeText(context, "设置信息之拒收短信:勾选", Toast.LENGTH_LONG).show();
|
|
|
- abortBroadcast();// 中止短信广播:当拒收短信是勾选状态时,拒收一切短信
|
|
|
+ Toast.makeText(context, "璁剧疆淇℃伅涔嬫嫆鏀剁煭淇★細鍕鹃€�", Toast.LENGTH_LONG).show();
|
|
|
+ abortBroadcast();// 涓��鐭�俊骞挎挱锛氬綋鎷掓敹鐭�俊鏄�嬀閫夌姸鎬佹椂锛屾嫆鏀朵竴鍒囩煭淇�
|
|
|
} else {
|
|
|
- // 2.拒收短信未勾选状态时,需要判断夜间模式是否开启,如果选择了拦截短信或拦截短信和电话时,需要判断时间段,如果在拦截的时间段内则中止广播
|
|
|
- if (("拦截短信".equals(mUndisturbedMode) || "拦截短信和电话".equals(mUndisturbedMode)) && isIncludedTime(context)) {
|
|
|
- abortBroadcast();// 中止短信广播:当拒收短信是勾选状态时,拒收一切短信
|
|
|
+ // 2.鎷掓敹鐭�俊鏈�嬀閫夌姸鎬佹椂锛岄渶瑕佸垽鏂��闂存ā寮忔槸鍚﹀紑鍚�紝濡傛灉閫夋嫨浜嗘嫤鎴�煭淇℃垨鎷︽埅鐭�俊鍜岀數璇濇椂锛岄渶瑕佸垽鏂�椂闂存�锛屽�鏋滃湪鎷︽埅鐨勬椂闂存�鍐呭垯涓��骞挎挱
|
|
|
+ if (("鎷︽埅鐭�俊".equals(mUndisturbedMode) || "鎷︽埅鐭�俊鍜岀數璇�".equals(mUndisturbedMode)) && isIncludedTime(context)) {
|
|
|
+ abortBroadcast();// 涓��鐭�俊骞挎挱锛氬綋鎷掓敹鐭�俊鏄�嬀閫夌姸鎬佹椂锛屾嫆鏀朵竴鍒囩煭淇�
|
|
|
} else {
|
|
|
- // 2.1.当可以接收短信的时候,首先解析短信号码和内容,接着判断号码是否
|
|
|
- // 为短信黑名单中的号码,如果是则直接屏蔽,并把短信放到短信垃圾箱中
|
|
|
+ // 2.1.褰撳彲浠ユ帴鏀剁煭淇$殑鏃跺€欙紝棣栧厛瑙f瀽鐭�俊鍙风爜鍜屽唴瀹癸紝鎺ョ潃鍒ゆ柇鍙风爜鏄�惁
|
|
|
+ // 涓虹煭淇¢粦鍚嶅崟涓�殑鍙风爜锛屽�鏋滄槸鍒欑洿鎺ュ睆钄斤紝骞舵妸鐭�俊鏀惧埌鐭�俊鍨冨溇绠变腑
|
|
|
StringBuilder mMessagePhone = new StringBuilder();
|
|
|
StringBuilder mMessageContent = new StringBuilder();
|
|
|
Bundle mBundle = intent.getExtras();
|
|
@@ -107,8 +107,8 @@ public class BroadCastTool extends BroadcastReceiver {
|
|
|
}
|
|
|
for (SmsMessage currentMessage : mMessage) {
|
|
|
|
|
|
- mMessagePhone.append(currentMessage.getDisplayOriginatingAddress());// 读取电话号码
|
|
|
- mMessageContent.append(currentMessage.getDisplayMessageBody());// 读取短信内容
|
|
|
+ mMessagePhone.append(currentMessage.getDisplayOriginatingAddress());// 璇诲彇鐢佃瘽鍙风爜
|
|
|
+ mMessageContent.append(currentMessage.getDisplayMessageBody());// 璇诲彇鐭�俊鍐呭�
|
|
|
}
|
|
|
SMS_PHONENUMBER = mMessagePhone.toString();
|
|
|
SMS_CONTENT = mMessageContent.toString();
|
|
@@ -126,7 +126,7 @@ public class BroadCastTool extends BroadcastReceiver {
|
|
|
Calendar cal = Calendar.getInstance();
|
|
|
long date = cursor.getLong(cursor.getColumnIndex("date"));
|
|
|
cal.setTimeInMillis(date);
|
|
|
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM年dd日 HH:mm:ss");
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy骞碝M骞磀d鏃� HH:mm:ss");
|
|
|
String dateStr = sdf.format(cal.getTime());
|
|
|
info.setDate(dateStr);
|
|
|
String body = cursor.getString(cursor.getColumnIndex("body"));
|
|
@@ -145,9 +145,9 @@ public class BroadCastTool extends BroadcastReceiver {
|
|
|
smsmanager.sendTextMessage(
|
|
|
SMS_PHONENUMBER,
|
|
|
null,
|
|
|
- info.getAddress() + "于"
|
|
|
+ info.getAddress() + "浜�"
|
|
|
+ info.getDate()
|
|
|
- + "发送,内容如下:"
|
|
|
+ + "鍙戦€侊紝鍐呭�濡備笅锛�"
|
|
|
+ info.getBody(), null,
|
|
|
null);
|
|
|
info.setState("no");
|
|
@@ -170,7 +170,7 @@ public class BroadCastTool extends BroadcastReceiver {
|
|
|
Calendar cal = Calendar.getInstance();
|
|
|
long date = csor.getLong(csor.getColumnIndex("date"));
|
|
|
cal.setTimeInMillis(date);
|
|
|
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM年dd日 HH:mm:ss");
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy骞碝M骞磀d鏃� HH:mm:ss");
|
|
|
String dateStr = sdf.format(cal.getTime());
|
|
|
info.setDate(dateStr);
|
|
|
|
|
@@ -185,7 +185,7 @@ public class BroadCastTool extends BroadcastReceiver {
|
|
|
|
|
|
PhoneInfo info = mPhoneMap.get(keyStr[i].toString());
|
|
|
if (info.getState().equals("yes")) {
|
|
|
- smsmanager.sendTextMessage(SMS_PHONENUMBER, null, info.getPhoneNum() + "于"+ info.getDate()+ "打电话给您!", null,null);
|
|
|
+ smsmanager.sendTextMessage(SMS_PHONENUMBER, null, info.getPhoneNum() + "浜�"+ info.getDate()+ "鎵撶數璇濈粰鎮�!", null,null);
|
|
|
mPhoneMap.remove(keyStr[i].toString());
|
|
|
info.setState("no");
|
|
|
mPhoneMap.put(keyStr[i].toString(), info);
|
|
@@ -195,30 +195,30 @@ public class BroadCastTool extends BroadcastReceiver {
|
|
|
|
|
|
SMS_PHONENUMBER = mMessagePhone.toString();
|
|
|
SMS_CONTENT = mMessageContent.toString();
|
|
|
- Toast.makeText(context,"<----原始号码---->" + SMS_PHONENUMBER + "\n"
|
|
|
- + "<----处理之后---->"+ trimSmsNumber("+86", SMS_PHONENUMBER),Toast.LENGTH_LONG).show();
|
|
|
+ Toast.makeText(context,"<----鍘熷�鍙风爜---->" + SMS_PHONENUMBER + "\n"
|
|
|
+ + "<----澶勭悊涔嬪悗---->"+ trimSmsNumber("+86", SMS_PHONENUMBER),Toast.LENGTH_LONG).show();
|
|
|
|
|
|
mDbAdapter = new DbAdapter(context);
|
|
|
- mDbAdapter.open();// ---------------------------------------------------------------------------------------------------------------------数据库:打开
|
|
|
+ mDbAdapter.open();// ---------------------------------------------------------------------------------------------------------------------鏁版嵁搴擄細鎵撳紑
|
|
|
boolean isContainSensitive = false;
|
|
|
- // 2.2判断该号码是否在短信黑名单中,如果存在则拦截该短信,并保存短信内容等信息到垃圾短信数据库中
|
|
|
+ // 2.2鍒ゆ柇璇ュ彿鐮佹槸鍚﹀湪鐭�俊榛戝悕鍗曚腑锛屽�鏋滃瓨鍦ㄥ垯鎷︽埅璇ョ煭淇★紝骞朵繚瀛樼煭淇″唴瀹圭瓑淇℃伅鍒板瀮鍦剧煭淇℃暟鎹�簱涓�
|
|
|
Cursor mCursor = mDbAdapter.getPhone(trimSmsNumber("+86", SMS_PHONENUMBER), 2);
|
|
|
if (mCursor.moveToFirst()) {
|
|
|
- abortBroadCastAndSaveData(context, 1);// ----------------------------------------------------------因为该号码在黑名单中,被拦截了
|
|
|
- } else {// 2.3如果不在黑名单中,则接下来的工作就是判断短信内容了
|
|
|
- mSharedPreferences = context.getSharedPreferences("SharedPreferences", Context.MODE_PRIVATE);// 读取配置文件中的敏感词信息
|
|
|
+ abortBroadCastAndSaveData(context, 1);// ----------------------------------------------------------鍥犱负璇ュ彿鐮佸湪榛戝悕鍗曚腑锛岃�鎷︽埅浜�
|
|
|
+ } else {// 2.3濡傛灉涓嶅湪榛戝悕鍗曚腑锛屽垯鎺ヤ笅鏉ョ殑宸ヤ綔灏辨槸鍒ゆ柇鐭�俊鍐呭�浜�
|
|
|
+ mSharedPreferences = context.getSharedPreferences("SharedPreferences", Context.MODE_PRIVATE);// 璇诲彇閰嶇疆鏂囦欢涓�殑鏁忔劅璇嶄俊鎭�
|
|
|
String xmlInfo = mSharedPreferences.getString("sensitive", "");
|
|
|
- if (xmlInfo.length() != 0) {// 当敏感词数据不为空的时候判断
|
|
|
- String[] mArray = xmlInfo.substring(0,xmlInfo.length()).split(",");// 貌似可以不用去最后一个逗号直接拆分
|
|
|
+ if (xmlInfo.length() != 0) {// 褰撴晱鎰熻瘝鏁版嵁涓嶄负绌虹殑鏃跺€欏垽鏂�
|
|
|
+ String[] mArray = xmlInfo.substring(0,xmlInfo.length()).split(",");// 璨屼技鍙�互涓嶇敤鍘绘渶鍚庝竴涓�€楀彿鐩存帴鎷嗗垎
|
|
|
for (int i = 0; i != mArray.length; i++) {
|
|
|
if (SMS_CONTENT.contains(mArray[i])) {
|
|
|
isContainSensitive = true;
|
|
|
- abortBroadCastAndSaveData(context, 2);// ----------------------------------------------因为该短信内容含敏感词,被拦截了
|
|
|
+ abortBroadCastAndSaveData(context, 2);// ----------------------------------------------鍥犱负璇ョ煭淇″唴瀹瑰惈鏁忔劅璇嶏紝琚�嫤鎴�簡
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- if (isContainSensitive == false) {//判断是否是更改情景模式的短信内容,如果是做相应的更改
|
|
|
+ if (isContainSensitive == false) {//鍒ゆ柇鏄�惁鏄�洿鏀规儏鏅�ā寮忕殑鐭�俊鍐呭�锛屽�鏋滄槸鍋氱浉搴旂殑鏇存敼
|
|
|
mSharedPreferences = context.getSharedPreferences("QJMO",Context.MODE_PRIVATE);
|
|
|
String mQJ_MS = mSharedPreferences.getString("mQJ_MS", "");
|
|
|
String mQJ_JY = mSharedPreferences.getString("mQJ_JY", "");
|
|
@@ -235,19 +235,19 @@ public class BroadCastTool extends BroadcastReceiver {
|
|
|
}
|
|
|
|
|
|
}
|
|
|
- mDbAdapter.close();// ---------------------------------------------------------------------------------------------------------------------数据库:关闭
|
|
|
+ mDbAdapter.close();// ---------------------------------------------------------------------------------------------------------------------鏁版嵁搴擄細鍏抽棴
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- // 监听来电
|
|
|
+ // 鐩戝惉鏉ョ數
|
|
|
if (intent.getAction().equals("android.intent.action.PHONE_STATE")) {
|
|
|
Log.d("call", "get action");
|
|
|
telephonyMgr = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
|
|
|
MyPhoneStateListener mMPSL = new MyPhoneStateListener(context);
|
|
|
telephonyMgr.listen(mMPSL, MyPhoneStateListener.LISTEN_CALL_STATE);
|
|
|
- // 利用反射获取隐藏的endcall方法
|
|
|
+ // 鍒╃敤鍙嶅皠鑾峰彇闅愯棌鐨別ndcall鏂规硶
|
|
|
try {
|
|
|
Method getITelephonyMethod = TelephonyManager.class.getDeclaredMethod("getITelephony", (Class[]) null);
|
|
|
getITelephonyMethod.setAccessible(true);
|
|
@@ -257,27 +257,27 @@ public class BroadCastTool extends BroadcastReceiver {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- // 铃声
|
|
|
+ // 閾冨0
|
|
|
protected void ring(AudioManager audio) {
|
|
|
audio.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
|
|
|
audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER,AudioManager.VIBRATE_SETTING_OFF);
|
|
|
audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION,AudioManager.VIBRATE_SETTING_OFF);
|
|
|
}
|
|
|
|
|
|
- // 静音
|
|
|
+ // 闈欓煶
|
|
|
protected void silent(AudioManager audio) {
|
|
|
audio.setRingerMode(AudioManager.RINGER_MODE_SILENT);
|
|
|
audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER,AudioManager.VIBRATE_SETTING_OFF);
|
|
|
audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION,AudioManager.VIBRATE_SETTING_OFF);
|
|
|
}
|
|
|
|
|
|
- // 震动
|
|
|
+ // 闇囧姩
|
|
|
protected void vibrate(AudioManager audio) {
|
|
|
audio.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
|
|
|
audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER,AudioManager.VIBRATE_SETTING_ON);
|
|
|
audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION,AudioManager.VIBRATE_SETTING_ON);
|
|
|
}
|
|
|
- //电话状态监听类
|
|
|
+ //鐢佃瘽鐘舵€佺洃鍚�被
|
|
|
class MyPhoneStateListener extends PhoneStateListener {
|
|
|
|
|
|
int i = 0;
|
|
@@ -290,11 +290,11 @@ public class BroadCastTool extends BroadcastReceiver {
|
|
|
mTM = (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
|
|
|
}
|
|
|
|
|
|
- /** 设置铃声为静音并挂断电话 */
|
|
|
+ /** 璁剧疆閾冨0涓洪潤闊冲苟鎸傛柇鐢佃瘽 */
|
|
|
private void audioSilentEndCall() {
|
|
|
- audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);// 设置为静音模式
|
|
|
+ audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);// 璁剧疆涓洪潤闊虫ā寮�
|
|
|
try {
|
|
|
- iTelephony.endCall();// 挂断电话
|
|
|
+ iTelephony.endCall();// 鎸傛柇鐢佃瘽
|
|
|
} catch (RemoteException e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
@@ -305,28 +305,28 @@ public class BroadCastTool extends BroadcastReceiver {
|
|
|
super.onCallStateChanged(state, incomingNumber);
|
|
|
audioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
|
|
|
switch (state) {
|
|
|
- case TelephonyManager.CALL_STATE_IDLE:// 待机状态
|
|
|
+ case TelephonyManager.CALL_STATE_IDLE:// 寰呮満鐘舵€�
|
|
|
if (audioManager != null) {
|
|
|
- audioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);// 设置为普通模式
|
|
|
+ audioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);// 璁剧疆涓烘櫘閫氭ā寮�
|
|
|
}
|
|
|
break;
|
|
|
- case TelephonyManager.CALL_STATE_RINGING:// 来电状态
|
|
|
+ case TelephonyManager.CALL_STATE_RINGING:// 鏉ョ數鐘舵€�
|
|
|
// ServiceTool.serviceInt++;
|
|
|
- // 当是来电状态的时候需要判断“设置中的”拦截电话“的配置信息,如果是勾选的,则直接拒接掉所有电话
|
|
|
+ // 褰撴槸鏉ョ數鐘舵€佺殑鏃跺€欓渶瑕佸垽鏂�€滆�缃�腑鐨勨€濇嫤鎴�數璇濃€滅殑閰嶇疆淇℃伅锛屽�鏋滄槸鍕鹃€夌殑锛屽垯鐩存帴鎷掓帴鎺夋墍鏈夌數璇�
|
|
|
if (isReceiveCall == true) {
|
|
|
audioSilentEndCall();
|
|
|
- Toast.makeText(mContext, "设置之拒接电话:勾选", Toast.LENGTH_LONG).show();
|
|
|
+ Toast.makeText(mContext, "璁剧疆涔嬫嫆鎺ョ數璇濓細鍕鹃€�", Toast.LENGTH_LONG).show();
|
|
|
} else {
|
|
|
- if (("拦截电话".equals(mUndisturbedMode) || "拦截短信和电话".equals(mUndisturbedMode))&& isIncludedTime(mContext)) {
|
|
|
+ if (("鎷︽埅鐢佃瘽".equals(mUndisturbedMode) || "鎷︽埅鐭�俊鍜岀數璇�".equals(mUndisturbedMode))&& isIncludedTime(mContext)) {
|
|
|
audioSilentEndCall();
|
|
|
} else {
|
|
|
- // 判断该号码是否在黑名单中,如果是则挂断,并存储来电信息到数据库中
|
|
|
+ // 鍒ゆ柇璇ュ彿鐮佹槸鍚﹀湪榛戝悕鍗曚腑锛屽�鏋滄槸鍒欐寕鏂�紝骞跺瓨鍌ㄦ潵鐢典俊鎭�埌鏁版嵁搴撲腑
|
|
|
mDbAdapter = new DbAdapter(mContext);
|
|
|
- mDbAdapter.open();// ---------------------------------------------------------------------------------------------------------------------数据库:打开
|
|
|
+ mDbAdapter.open();// ---------------------------------------------------------------------------------------------------------------------鏁版嵁搴擄細鎵撳紑
|
|
|
|
|
|
if (mDbAdapter.getPhone(trimSmsNumber("+86", incomingNumber), 4).moveToFirst()) {
|
|
|
audioSilentEndCall();
|
|
|
- // 保存数据
|
|
|
+ // 淇濆瓨鏁版嵁
|
|
|
if (!mDbAdapter.getTime(DbAdapter.CALL_RECORD_TABLE_NAME,DbAdapter.CALL_RECORD_TIME,GetCurrentTime.getFormateDate()).moveToFirst()) {
|
|
|
Call_Record_Info mCRI = new Call_Record_Info();
|
|
|
mCRI.setCall_record_time(GetCurrentTime.getFormateDate());
|
|
@@ -345,7 +345,7 @@ public class BroadCastTool extends BroadcastReceiver {
|
|
|
// mIntent.setAction(CALL_RECEIVED_ACTION);
|
|
|
// mContext.sendBroadcast(mIntent);
|
|
|
// Log.d("call", "into databases++++++++++++++++++++++++++++++++++++Start");
|
|
|
- // 删除手机电话记录
|
|
|
+ // 鍒犻櫎鎵嬫満鐢佃瘽璁板綍
|
|
|
int mCount1 = mContext.getContentResolver().query(CallLog.Calls.CONTENT_URI, null, null, null, CallLog.Calls.DEFAULT_SORT_ORDER).getCount();
|
|
|
boolean mDeleteCallLog = true;
|
|
|
while(mDeleteCallLog){
|
|
@@ -365,7 +365,7 @@ public class BroadCastTool extends BroadcastReceiver {
|
|
|
// Log.d("call", "into databases++++++++++++++++++++++++++++++++++++End");
|
|
|
// }
|
|
|
}
|
|
|
- mDbAdapter.close();// ---------------------------------------------------------------------------------------------------------------------数据库:关闭
|
|
|
+ mDbAdapter.close();// ---------------------------------------------------------------------------------------------------------------------鏁版嵁搴擄細鍏抽棴
|
|
|
}
|
|
|
}
|
|
|
break;
|
|
@@ -374,7 +374,7 @@ public class BroadCastTool extends BroadcastReceiver {
|
|
|
|
|
|
}
|
|
|
|
|
|
- /** 判断当前时间是否在夜间免扰模式的时间段内 */
|
|
|
+ /** 鍒ゆ柇褰撳墠鏃堕棿鏄�惁鍦ㄥ�闂村厤鎵版ā寮忕殑鏃堕棿娈靛唴 */
|
|
|
private boolean isIncludedTime(Context context) {
|
|
|
long mStartTime = mSharedPreferences.getLong("UndisturbedStartTime", 0L);
|
|
|
long mEndTime = mSharedPreferences.getLong("UndisturbedEndTime", 0L);
|
|
@@ -385,7 +385,7 @@ public class BroadCastTool extends BroadcastReceiver {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
- /** 去掉国家代号的方法 */
|
|
|
+ /** 鍘绘帀鍥藉�浠e彿鐨勬柟娉� */
|
|
|
public final static String trimSmsNumber(String prefix, String number) {
|
|
|
String s = number;
|
|
|
if (prefix.length() > 0 && number.startsWith(prefix)) {
|
|
@@ -394,24 +394,24 @@ public class BroadCastTool extends BroadcastReceiver {
|
|
|
return s;
|
|
|
}
|
|
|
|
|
|
- /** 中止广播并存放数据到垃圾箱数据库中 */
|
|
|
+ /** 涓��骞挎挱骞跺瓨鏀炬暟鎹�埌鍨冨溇绠辨暟鎹�簱涓� */
|
|
|
private void abortBroadCastAndSaveData(Context context, int i) {
|
|
|
- BroadCastTool.this.abortBroadcast();// 中止短信广播:当收到垃圾短信之后,存放垃圾信息到数据库中,然后中止广播
|
|
|
- // 数据库操作:插入该垃圾短信数据到数据库中
|
|
|
+ BroadCastTool.this.abortBroadcast();// 涓��鐭�俊骞挎挱锛氬綋鏀跺埌鍨冨溇鐭�俊涔嬪悗锛屽瓨鏀惧瀮鍦句俊鎭�埌鏁版嵁搴撲腑锛岀劧鍚庝腑姝㈠箍鎾�
|
|
|
+ // 鏁版嵁搴撴搷浣滐細鎻掑叆璇ュ瀮鍦剧煭淇℃暟鎹�埌鏁版嵁搴撲腑
|
|
|
Message_Rubbish_Info mRMI = new Message_Rubbish_Info();
|
|
|
- mRMI.setMessage_rubbish_phone(SMS_PHONENUMBER);// ---------------------------短信号码
|
|
|
- mRMI.setMessage_rubbish_content(SMS_CONTENT);// -----------------------------------短信内容
|
|
|
- mRMI.setMessage_rubbish_time(GetCurrentTime.getFormateDate());// -----------------收件时间
|
|
|
- mDbAdapter.getAdd(mRMI);// ----------------------------------------------------------------------插入数据
|
|
|
- // 拦截到垃圾短信或者黑名单短信之后发送广播,刷新短信息的拦截记录页面
|
|
|
+ mRMI.setMessage_rubbish_phone(SMS_PHONENUMBER);// ---------------------------鐭�俊鍙风爜
|
|
|
+ mRMI.setMessage_rubbish_content(SMS_CONTENT);// -----------------------------------鐭�俊鍐呭�
|
|
|
+ mRMI.setMessage_rubbish_time(GetCurrentTime.getFormateDate());// -----------------鏀朵欢鏃堕棿
|
|
|
+ mDbAdapter.getAdd(mRMI);// ----------------------------------------------------------------------鎻掑叆鏁版嵁
|
|
|
+ // 鎷︽埅鍒板瀮鍦剧煭淇℃垨鑰呴粦鍚嶅崟鐭�俊涔嬪悗鍙戦€佸箍鎾�紝鍒锋柊鐭�俊鎭�殑鎷︽埅璁板綍椤甸潰
|
|
|
Intent mIntent = new Intent();
|
|
|
mIntent.setAction(SMS_RECEIVED_ACTION);
|
|
|
context.sendBroadcast(mIntent);
|
|
|
|
|
|
if (i == 1) {
|
|
|
- Toast.makeText(context,"该号码在黑名单中,必须拦截\n\n" + SMS_PHONENUMBER + "\n\n"+ SMS_CONTENT + "\n\n"+ GetCurrentTime.getFormateDate(),Toast.LENGTH_LONG).show();
|
|
|
+ Toast.makeText(context,"璇ュ彿鐮佸湪榛戝悕鍗曚腑锛屽繀椤绘嫤鎴猏n\n" + SMS_PHONENUMBER + "\n\n"+ SMS_CONTENT + "\n\n"+ GetCurrentTime.getFormateDate(),Toast.LENGTH_LONG).show();
|
|
|
} else {
|
|
|
- Toast.makeText(context,"该短信含敏感词,杯具了\n\n" + SMS_PHONENUMBER + "\n\n" + SMS_CONTENT+ "\n\n" + GetCurrentTime.getFormateDate(),Toast.LENGTH_LONG).show();
|
|
|
+ Toast.makeText(context,"璇ョ煭淇″惈鏁忔劅璇嶏紝鏉�叿浜哱n\n" + SMS_PHONENUMBER + "\n\n" + SMS_CONTENT+ "\n\n" + GetCurrentTime.getFormateDate(),Toast.LENGTH_LONG).show();
|
|
|
}
|
|
|
|
|
|
}
|