1. 程式人生 > >[Android]通過廣播讀取簡訊

[Android]通過廣播讀取簡訊

此例項實現功能為通過接收廣播讀取簡訊

實現很簡單,但使用到了廣播接受者,以免遺忘在此記錄:

程式碼

  • AndriodMainfest檔案

申明許可權

    <uses-permission android:name="android.permission.RECEIVE_SMS" >
    </uses-permission>

配置廣播

        <receiver android:name="activity.SMSBroadcastReceiver">
            <intent-filter android:priority
="999">
<action android:name="android.provider.Telephony.SMS_RECEIVED" /> </intent-filter> </receiver>
  • BroadcastReceiver檔案
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import
android.telephony.SmsMessage; public class SMSBroadcastReceiver extends BroadcastReceiver{ //指定動作的名稱 public static final String ACTION = "android.provider.Telephony.SMS_RECEIVED"; @Override public void onReceive(Context context, Intent intent) { if (ACTION.equals(intent.getAction())) { //根據接收到的意圖物件獲取簡訊
SmsMessage[] msgs = getMessageFromIntent(intent); //提取簡訊內容 StringBuilder sBuilder = new StringBuilder(); if (msgs != null && msgs.length > 0 ) { for (SmsMessage msg : msgs) { sBuilder.append("接收到了簡訊:\n發件人是:"); sBuilder.append(msg.getDisplayOriginatingAddress()); sBuilder.append("\n------簡訊內容-------\n"); sBuilder.append(msg.getDisplayMessageBody()); } } System.out.println(sBuilder.toString()); } } //從意圖獲取簡訊物件的具體方法 public static SmsMessage[] getMessageFromIntent(Intent intent) { SmsMessage retmeMessage[] = null; Bundle bundle = intent.getExtras(); Object pdus[] = (Object[]) bundle.get("pdus"); retmeMessage = new SmsMessage[pdus.length]; for (int i = 0; i < pdus.length; i++) { byte[] bytedata = (byte[]) pdus[i]; retmeMessage[i] = SmsMessage.createFromPdu(bytedata); } return retmeMessage; } }

相關推薦

[Android]通過廣播讀取簡訊

此例項實現功能為通過接收廣播讀取簡訊 實現很簡單,但使用到了廣播接受者,以免遺忘在此記錄: 程式碼 AndriodMainfest檔案 申明許可權 <uses-permission android:name="android.pe

android 通過廣播來彈出dialog(在小米上會一閃而過的原因)

最近又學了一些android 的基礎知識廣播,之前因為一直沒有用到所以就沒怎麼重視,在接觸一些大牛們的專案原始碼後,發現廣播確是蠻有用的。 於是自己就翻閱了幾本書和幾個相關視訊,仿照著寫了一個基本功能的測試app,功能大致是點選一個介面上的按鈕會發送一個廣播,在xml檔案中

Android通過廣播監測Wi-Fi和行動式熱點開關狀態

前言 Android端通過廣播的形式動態監測Wi-Fi狀態以及行動式熱點開關狀態,其中獲取Wi-Fi狀態很簡單,網上很多示例,但是通過廣播獲取熱點開關狀態相關的資料少之又少,不過好在一個國外網站找到了解決辦法,在此分享給大家。 正文 直接看程式碼 pac

Android藍芽讀取簡訊調研

      對“直接通過藍芽來獲取連線手機的簡訊資訊”這個需求做了一些技術調研,如下是調研過程中的一些記錄。 1、無法得到BluetoothMasClient類      在文章https://blog.csdn.net/u012439416/art

Android 利用廣播實現黑名單【指定號碼】的簡訊的攔截 附原始碼下載連結

Android 利用廣播實現指定號碼的簡訊的攔截 根據最近的學習內容,今天實現了利用廣播進行指定號碼的攔截 步驟: ①、寫一個數據庫的幫助類,實現對資料庫的建立,總共建立兩個資料庫psms(受保護的簡訊的資料庫)和protectedPhone(受保護的聯絡人資料庫),粘程式碼:

Android 通過UDP廣播建立Socket

前言:專案中遇到的實際問題,Android手機想要和區域網中的某個主機進行Socket通訊,但是Socket連線前卻無法獲知該主機的IP, 為了建立Socket,就需要Android手機在區域網內傳送UDP廣播,從而獲得目的主機的IP。 一、 關於 T

Android 2個Service實現相互保活,通過bindservice來實現,不通過廣播實現

1,實現原理:啟動2個Service,相互繫結監聽,當A Service監聽到連線斷開的時候,說明B服務可能被 Kill掉了,這時需要重新開啟A服務,同樣B服務的監聽斷掉了,重新啟動A服務。A,B兩個服務都是單獨的程序,需要使用AIDL來通訊。 2,A服務原始碼: public class

Android】Service通過廣播更新UI

定義一個activity,在activity中定義一個內部廣播接收器,並且動態註冊該廣播接收器:package com.zzj.ui.serviceUpdateUIDemo; import andr

第92章、廣播之三通過廣播啟動服務(從零開始學Android

  Service(服務)在Android中地位是至關重要的,我們可以通過Activity與Broadcast(廣播)啟動Service(服務),我們本章學習如何通過廣播Broadcast啟動服務Service。   也許你會說,能用Activity啟動,幹嘛要用廣播呢?—

Android 通過註冊廣播,實時監聽網路連線與斷開狀態的變化

很多時候我們都需要實時監聽網路狀態,當網路狀態發生變化之後立即通知程式進行不同的操作。 監聽廣播的兩種方式: (1)在AndroidManifest.xml配置檔案中宣告 <receiver android:name=".NetworkConn

Android SMS —— 讀取簡訊 聯絡人

Android SMS Read [java] view plaincopyprint? package com.homer.sms;   import java.sql.Date;   import java.text.SimpleDateFormat

Android SMS(一) —— 讀取簡訊

Android SMS Read package com.homer.sms; import java.sql.Date; import java.text.SimpleDateFormat; import android.app.Activity; import

Android 採用廣播接收者實現簡訊應用

廣播接收者--BroadcastReceiver(實現簡訊應用) 原理:當系統收到簡訊時,會發出一個廣播Intent,Intent的action名稱為Android.provider.Telephony.SMS_RECEIVED,該Intent存放了系統收到的簡訊內容,

Android -- 利用ContentProvider 讀取和寫入簡訊

1. 讀寫簡訊 示例程式碼 均需要先獲得讀寫簡訊的許可權 <uses-permission android:name="android.permission.WRITE_SMS"/>

android 通過uri獲取圖片並根據限制大小讀取圖片的方法

uri = data.getData();BitmapFactory.Options options =newBitmapFactory.Options(); options.inJustDecodeBounds =true;try{Bitm

android 通過區域網udp廣播自動建立socket連線

android開發中經常會用到socket通訊。由於專案需要,最近研究了一下這方面的知識。 需求是想通過wifi實現android移動裝置和android平臺的電視之間的檔案傳輸與控制。 毫無疑問這中間一定需要用到socket來進行通訊。今天就兩臺裝置的握手連線方式分享一

Android中Activity和Service簡單互動(通過廣播機制)

package com.cwb; import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; im

通過廣播獲取Android螢幕旋轉事件

     Android獲取系統螢幕旋轉的方式有幾種,其中比較常見的是通過重寫Activity中的onConfigurationChanged方法,但是這種方法有個缺陷,當測試程式在後臺執行的時候不能

Android 通過讀取本地Arp表獲取當前區域網內其他裝置資訊

目的:獲取當前區域網內其他連線裝置的IP 和MAC資訊。 步驟: 1. 獲取本機wifi ip資訊; 2. 根據ip 去傳送ARP請求 3. 讀取本地ARP 表;

Android 通過SOCKET下載文件的方法

write 客戶端 length 路徑 tin private extends sta rep 本文實例講述了Android通過SOCKET下載文件的方法。分享給大家供大家參考,具體如下: 服務端代碼 import java.io.BufferedInputStre