自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

移動(dòng)開發(fā)
很多時(shí)候我們需要對(duì)短信進(jìn)行篩選,將指定短信轉(zhuǎn)發(fā)到特定手機(jī)號(hào),以防止遺漏重要內(nèi)容,本程序就是實(shí)現(xiàn)這個(gè)功能??梢栽O(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ā)??稍O(shè)置多個(gè)關(guān)鍵詞,關(guān)鍵詞以空格或者逗號(hào)分隔。
轉(zhuǎn)發(fā)全部短信時(shí),將忽略關(guān)鍵詞設(shè)置。打開關(guān)鍵詞模式時(shí),忽略全部轉(zhuǎn)發(fā)的開關(guān)。開發(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 來源: 網(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)鍵詞

2013-08-26 15:43:40

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

2011-05-25 17:58:00

2011-05-25 17:38:56

關(guān)鍵詞

2019-12-22 13:48:26

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

2013-05-24 11:20:13

2011-06-14 10:01:03

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

2011-06-19 12:20:47

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

2012-03-20 22:19:16

Linux

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)

2021-06-02 22:18:11

Python關(guān)鍵詞微博

2011-06-10 14:13:24

關(guān)鍵詞

2024-06-13 09:05:12

2011-06-29 11:20:25

關(guān)鍵詞SEO

2011-05-17 16:44:13

seo

2011-06-15 19:17:15

關(guān)鍵詞
點(diǎn)贊
收藏

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