成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

按關(guān)鍵詞轉(zhuǎn)發(fā)短信至指定手機(jī)號(hào)

移動(dòng)開(kāi)發(fā)
很多時(shí)候我們需要對(duì)短信進(jìn)行篩選,將指定短信轉(zhuǎn)發(fā)到特定手機(jī)號(hào),以防止遺漏重要內(nèi)容,本程序就是實(shí)現(xiàn)這個(gè)功能。可以設(shè)置全部轉(zhuǎn)發(fā),也可設(shè)置只轉(zhuǎn)發(fā)設(shè)置關(guān)鍵詞內(nèi)容的轉(zhuǎn)發(fā)。可設(shè)置多個(gè)關(guān)鍵詞,關(guān)鍵詞以空格或者逗號(hào)分隔。

源碼簡(jiǎn)介

很多時(shí)候我們需要對(duì)短信進(jìn)行篩選,將指定短信轉(zhuǎn)發(fā)到特定手機(jī)號(hào),以防止遺漏重要內(nèi)容,本程序就是實(shí)現(xiàn)這個(gè)功能。可以設(shè)置全部轉(zhuǎn)發(fā),也可設(shè)置只轉(zhuǎn)發(fā)設(shè)置關(guān)鍵詞內(nèi)容的轉(zhuǎn)發(fā)。可設(shè)置多個(gè)關(guān)鍵詞,關(guān)鍵詞以空格或者逗號(hào)分隔。
轉(zhuǎn)發(fā)全部短信時(shí),將忽略關(guān)鍵詞設(shè)置。打開(kāi)關(guān)鍵詞模式時(shí),忽略全部轉(zhuǎn)發(fā)的開(kāi)關(guān)。開(kāi)發(fā)這個(gè)的原因在于,網(wǎng)上現(xiàn)在有些類似功能的,但多數(shù)是轉(zhuǎn)發(fā)到email,一般不提供轉(zhuǎn)發(fā)短信功能,而有的轉(zhuǎn)發(fā)短信的是付費(fèi)服務(wù),同時(shí)所有短信會(huì)被發(fā)送到他們的服務(wù)器,造成信息安全、隱私泄露隱患。
包名、文件名方面需注意,不要寫sms forward字眼,否則會(huì)被防火墻阻擋。
源碼運(yùn)行截圖

源碼片段:

  1. public class SmsReceiver extends BroadcastReceiver { 
  2.     static final Object mStartingServiceSync = new Object(); 
  3.     static PowerManager.WakeLock mStartingService=null
  4.     private static SmsReceiver sInstance=null
  5.     private static final String SMS_RECEIVED_ACTION = "android.provider.Telephony.SMS_RECEIVED"
  6.     private StringBuilder msgbody=new StringBuilder(); 
  7.     static int recnum=1
  8.     static int fwdnum=1
  9.       
  10.     public static SmsReceiver getInstance() { 
  11.         if (sInstance == null) { 
  12.             sInstance = new SmsReceiver(); 
  13.         } 
  14.         return sInstance; 
  15.     } 
  16.   
  17.     @Override 
  18.     public void onReceive(final Context context, Intent intent) { 
  19.         final Context mContext=context; 
  20.           
  21.         final SharedPreferences settings = context.getSharedPreferences(SmsFilterConfig.APP_SET_NAME, Context.MODE_PRIVATE); 
  22.         boolean isActive = settings.getBoolean(SmsFilterConfig.KEY_IS_ENABLED, false); 
  23.         final boolean isRemoteEnabled = settings.getBoolean(SmsFilterConfig.KEY_FILTER_ENABLED, false); 
  24.         final String telNumber = settings.getString(SmsFilterConfig.KEY_SMS_NO, ""); 
  25.         String smskeyword = settings.getString(SmsFilterConfig.SMSKEYWORD, ""); 
  26.         SensitivewordFilter filter = new SensitivewordFilter(smskeyword); 
  27.           
  28.         //beginStartingService(context, intent); 
  29.           
  30.         if (intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")){ 
  31.             recnum++; 
  32.         } 
  33.         if ((isActive||isRemoteEnabled)&&intent.getAction().equals(SMS_RECEIVED_ACTION)) { 
  34.             Bundle bundle = intent.getExtras(); // ---get the SMS message passed in--- 
  35.             String msg_from = "", message = ""
  36.             if (bundle != null) { 
  37.                 try { 
  38.                     Object[] pdus = (Object[])intent.getExtras().get("pdus"); 
  39.                     SmsMessage[] messages = new SmsMessage[pdus.length]; 
  40.                     for (int i = 0; i < pdus.length; i++){ 
  41.                         messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]); 
  42.                     } 
  43.                     msgbody.delete(0, msgbody.length()); 
  44.                     for (SmsMessage mes : messages){ 
  45.                         msgbody.append(mes.getMessageBody()); 
  46.                         msg_from = mes.getOriginatingAddress(); 
  47.                     } 
  48.                     message=msgbody.toString().replaceAll("\\s"""); 
  49.                 }catch (Exception e) { 
  50.                     e.printStackTrace(); 
  51.                 } 
  52.             } 
  53.             if (isRemoteEnabled ) { 
  54.                 boolean a= filter.isContaintSensitiveWord (message, 1);Log.d("""4"); 
  55.                 //Set<string> set = filter.getSensitiveWord("aaefggh", 1);Log.d("", "4"); 
  56.                 if (a){ 
  57.                     isActive = true
  58.                 } 
  59.             } 
  60.   
  61.             if (isActive && telNumber != null && telNumber.length() > 0) { 
  62.                 SmsManager smsManager = SmsManager.getDefault(); 
  63.                 smsManager.sendTextMessage(telNumber, null
  64.                         message+ " -From- " +msg_from, nullnull); 
  65.                 fwdnum++; 
  66.             } 
  67.         } 
  68.         String title=context.getString(R.string.app_name); 
  69.         String sAgeFormat = context.getString(R.string.notifyinfo); 
  70.         String body=String.format(sAgeFormat, recnum, fwdnum); 
  71.         MessageUtils.updateNotifications(mContext, title, body); 
  72.         //finishBlockSms(); 
  73.         /*SharedPreferences.Editor editor = settings.edit(); 
  74.         editor.putInt(SmsFilterConfig.KEY_REC_NUM, recnum); 
  75.         editor.commit();*/ 
  76.         //MessageUtils.writeIntPref(mContext,SmsFilterConfig.KEY_REC_NUM, recnum); 
  77.        // MessageUtils.writeIntPref(mContext,SmsFilterConfig.KEY_FWD_NUM, fwdnum); 
  78.     } 
  79.     @SuppressWarnings("deprecation"
  80.     public static void updateNotifications(Context mContext,String title,String body){ 
  81.         NotificationManager nm; 
  82.         Intent  mIntent; 
  83.         PendingIntent pd; 
  84.         Notification  baseNF; 
  85.         nm = (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE); 
  86.         mIntent=new Intent("com.dx.util.SmsFilterConfig"); 
  87.         mIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP|Intent.FLAG_ACTIVITY_NEW_TASK); 
  88.         pd = PendingIntent.getActivity(mContext, 0, mIntent, PendingIntent.FLAG_UPDATE_CURRENT); //如果轉(zhuǎn)移內(nèi)容則用m_Intent(); 
  89.         baseNF = new Notification(); 
  90.         baseNF.icon = R.drawable.icon; 
  91.         baseNF.tickerText = title; 
  92.         baseNF.flags |= Notification.FLAG_NO_CLEAR;  
  93.         //設(shè)置通知顯示的參數(shù) 
  94.         baseNF.setLatestEventInfo(mContext, title, body, pd); 
  95.         nm.notify(R.string.app_name, baseNF); 
  96.     } 
  97. }</string> 

源碼鏈接:http://down.51cto.com/data/1985029

責(zé)任編輯:chenqingxiang 來(lái)源: 網(wǎng)絡(luò)整理
相關(guān)推薦

2011-06-20 14:32:59

關(guān)鍵詞

2011-06-07 18:45:41

關(guān)鍵詞

2011-06-14 19:11:38

關(guān)鍵詞

2019-12-22 13:48:26

退休科技行業(yè)大佬

2011-05-25 17:38:56

關(guān)鍵詞

2011-05-25 17:58:00

2013-08-26 15:43:40

AppStore關(guān)鍵詞開(kāi)發(fā)者應(yīng)用選取關(guān)鍵詞

2013-05-24 11:20:13

2009-11-03 09:02:59

Windows 7蘋果競(jìng)爭(zhēng)

2011-07-22 15:48:46

SEO

2014-09-12 14:03:45

操作系統(tǒng)

2011-06-19 12:20:47

長(zhǎng)尾關(guān)鍵詞

2012-03-20 22:19:16

Linux

2011-06-14 10:01:03

長(zhǎng)尾關(guān)鍵詞

2021-06-02 22:18:11

Python關(guān)鍵詞微博

2011-06-10 13:34:17

關(guān)鍵詞

2011-07-06 18:18:01

關(guān)鍵詞密度

2011-06-16 17:32:48

關(guān)鍵詞

2012-04-25 16:34:04

ASO關(guān)鍵詞描述

2015-08-18 09:25:11

Java修飾符關(guān)鍵詞
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 狠狠综合久久av一区二区老牛 | 一级片毛片| 日本成人久久 | 欧美日韩在线一区二区三区 | 一区二区三区视频在线 | 午夜久久久 | 美女福利网站 | 91五月婷蜜桃综合 | 免费日本视频 | 久久久成人免费一区二区 | 国产乱码高清区二区三区在线 | 午夜精品一区二区三区三上悠亚 | 日韩视频―中文字幕 | 亚洲成人精品国产 | 欧美精品成人 | 亚洲小说图片 | 中国大陆高清aⅴ毛片 | 日韩中出 | 亚洲精品短视频 | 国产欧美日韩一区二区三区在线 | 亚洲一区在线日韩在线深爱 | 久久99精品久久久久久 | a在线免费观看 | 高清国产午夜精品久久久久久 | 国产精品综合色区在线观看 | 91极品视频| 国产一区二区三区在线 | 国产亚洲精品一区二区三区 | 91精品国产麻豆 | 国产在线a | 久久综合九九 | 欧美一区二区三区视频在线 | 91新视频 | 国产精品美女久久久久久免费 | 国产1区2区 | 国产探花在线观看视频 | 日韩欧美视频 | 国产69精品久久99不卡免费版 | 欧美亚洲综合久久 | 欧美成人一区二区三区 | 天堂色综合 |