老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

怎么在Android中利用BroadcastReceiver實現短信關鍵字自動回復功能

這篇文章將為大家詳細講解有關怎么在Android中利用BroadcastReceiver實現短信關鍵字自動回復功能,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

創新互聯公司:2013年開創至今為各行業開拓出企業自己的“網站建設”服務,為超過千家公司企業提供了專業的做網站、成都網站建設、網頁設計和網站推廣服務, 按需網站設計由設計師親自精心設計,設計的效果完全按照客戶的要求,并適當的提出合理的建議,擁有的視覺效果,策劃師分析客戶的同行競爭對手,根據客戶的實際情況給出合理的網站構架,制作客戶同行業具有領先地位的。

1.自定義SmsBroadcastReceiver

(1)自定義SmsBroadcastReceiver繼承自BroadcastReceiver,并重寫OnReceive方法

mContext = context;
//獲取短信的bundle
Bundle bundle = intent.getExtras();
//短信對象
SmsMessage msg;
if (null != bundle) {
 //獲取pdu編碼的短信數組(接受的短信都是以pdu編碼的16進制數組)
 Object[] smsObj = (Object[]) bundle.get("pdus");
 for (Object object : smsObj) {
  //將pdu編碼的短信解析為SmsMessage對象
  msg = SmsMessage.createFromPdu((byte[]) object);
  //獲取短信內容
  String msgBody = msg.getDisplayMessageBody();
  //獲取發送短信的號碼
  String number = msg.getOriginatingAddress();
  //獲取短信時間戳
  long time = msg.getTimestampMillis();
  //獲取我們在主頁面設置的要回復短信的關鍵字及短信內容的bean
  List smsList = ShareUtil.getInstance(context).getSMS();
  for (SmSBean bean : smsList) {
   //判斷短信內容是否包含設置的關鍵字
   if (!TextUtils.isEmpty(msgBody) && msgBody.contains(bean.key)) {
    //如果包含,則自動發送短信
    AutoSendSms(bean.content, context, number, time, msgBody);
    break;
   }
  }
 }
}

(2)定義自動發送短信的方法AutoSendSms

/**
 * 發送短信的方法
 * @param msg 發送的短信內容
 * @param context 上下文對象
 * @param number 接受短信的號碼
 * @param time 時間戳
 * @param msgBody 接受到的短信
 */
private void AutoSendSms(String msg, Context context, String number, long time, String msgBody) {
 //獲取短信管理器
 SmsManager SM = SmsManager.getDefault();
 //通過反射獲取短信管理類
 Class SMClass = SmsManager.class; //通過反射查到了SmsManager有個叫做mSubId的屬性
 // 創建發送短信意圖
 Intent sentIntent = new Intent(SENT_SMS_ACTION);

 Field field = null;
 try {
  field = SMClass.getDeclaredField("mSubId");
  field.setAccessible(true);
  try {
   //獲取發送短信的卡
   int smsType = ShareUtil.getInstance(context).getSMSType();
   field.set(SM, smsType);
   //1.136
   //0.155
   sentIntent.putExtra("address", number);
   sentIntent.putExtra("msg", msg);
   sentIntent.putExtra("time", time);
   sentIntent.putExtra("msgBody", msgBody);
   PendingIntent sentPI = PendingIntent.getBroadcast(context, 0, sentIntent,0);
   //自動發送短信
   SM.sendTextMessage(number, null, msg, sentPI, null);
   Log.e("TAG", "onCreate: sendTextMessage");
  } catch (IllegalAccessException e) {
   e.printStackTrace();
  }
 } catch (NoSuchFieldException e) {
  e.printStackTrace();
 }
}

2.定義自動發送短信的SmsService

public class SmsService extends Service {
 private static final String TAG = SendSMSService.class.getSimpleName();
 @Nullable
 @Override
 public IBinder onBind(Intent intent) {
  return null;
 }
 @Override
 public void onCreate() {
  super.onCreate();
  new Handler().postDelayed(new Runnable() {
   @Override
   public void run() {
    Toast.makeText(SendSMSService.this, "SmsService------------", Toast.LENGTH_SHORT).show();
   }
  }, 10000);
 }
}

3.清單文件注冊

(1)短信監聽的廣播注冊


 
  
 

priority:設置優先級的屬性,999為最高優先級

(2)發送短信的服務注冊

4.Activity中設置關鍵字及回復內容

(1)雙卡模式選擇發送卡

使用RadioGroup實現雙卡模式的選擇,并用SharePreference保存選中的短信發送卡

mRgSim.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
 @Override
 public void onCheckedChanged(RadioGroup group, int checkedId) {
  switch (checkedId) {
   case R.id.rb_1:
 simType = 0;
    ShareUtil.getInstance(MainActivity.this).saveSMSType(simType);
    break;
   case R.id.rb_2:
    simType = 1;
    ShareUtil.getInstance(MainActivity.this).saveSMSType(simType);
    break;
   default:
    ShareUtil.getInstance(MainActivity.this).saveSMSType(simType);
    break;
  }
 }
});

(2)設置短信關鍵字及回復內容

//保存關鍵字及回復內容
mEtSave.setOnClickListener(new View.OnClickListener() {
 @Override
 public void onClick(View v) {
  //關鍵字
  String key = mEtKey.getText().toString().trim();
  //回復的內容
  String content = mEtContent.getText().toString().trim();
  //保存關鍵字及內容的bean
  SmSBean bean = new SmSBean(key, content);
  //獲取之前已添加的關鍵字及內容
  init();
  //添加新的關鍵字及內容
  mDataList.add(bean);
  //用sharePreference保存關鍵字及內容對象集合
  ShareUtil.getInstance(MainActivity.this).saveSMS(mDataList);
  //將關鍵字及內容輸入框置空
  mEtKey.setText("");
  mEtContent.setText("");
 }
});

關于怎么在Android中利用BroadcastReceiver實現短信關鍵字自動回復功能就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。


新聞標題:怎么在Android中利用BroadcastReceiver實現短信關鍵字自動回復功能
標題路徑:http://www.xueling.net.cn/article/ggseje.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 91在线小视频 | 精品国品一二三产品区别在线观看 | 永久免费AV无码网站在线 | 亚洲综合区夜夜久久久 | 成人免费午夜视频69影院 | 最近中文字幕完整视频高清 | 久草网免费 | 波多野结衣1区 | 99久久精品免费看国产高清 | 亚洲毛片一区二区 | 美女视频黄频a美女大全 | 国产精品18久久久久久久 | 韩国无码无遮挡在线观看 | 久久精品无码中文字幕老司机 | 一级@片| 美女乱子伦高潮在线观看完整片 | 色婷婷五月色综合AⅤ视频 午夜亚洲国产理论片 | 农村妇女一级片 | 欧美性孟交 | 人人妻人人澡人人爽秒播 | 日韩毛片国产精品一区二区 | 欧美美女一区 | 少妇无码太爽了在线观看免费视频 | 国产图区 | 向往的生活第2季免费观看 被按摩师玩弄到潮喷在线播放 | 精品人妻无码一区二区三区打不开 | 天堂在线www资源在线 | 精品丝袜国产自在线拍高清 | 新版天堂资源中文8在线 | 欧美人与禽ZOZ0善交 | 国产一区欧美日韩精品 | 亚洲日韩欧美综合不卡在线 | 好爽好黄好刺激的视频 | 国产免费拔擦拔擦8x在线牛 | 亚洲AV永久无码精品桃花岛知道 | 四虎精品一区二区永久在线观看 | 久艹日日日 | 国产va免费精品观看精品老师 | 日韩一区二区三区在线视频观看 | 黄色一级片免费网站 | 日本不卡免费一区 |