日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

短信发送接收装置

發布時間:2023/12/9 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 短信发送接收装置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

接到Boss的命令,要求我們做一個在Android手機上運行的小的例子,實現的功能是:通過一個手機向另外一個手機發送數據,另外一個Android手機接收到后通過USB接口輸出!

該裝置主要由三個步驟組成:

1、發信息

2、接收信息并讀取信息內容

3、從 USB 口輸出(這里暫時沒實現)

就是為了實現一個短信發送,并接收短信內容輸出的裝置

MainActivity.java 類實現的是發送信息的功能

1 package com.example.android_phone; 2 3 import java.util.ArrayList; 4 5 import android.app.Activity; 6 import android.os.Bundle; 7 import android.telephony.SmsManager; 8 import android.view.Menu; 9 import android.view.View; 10 import android.view.View.OnClickListener; 11 import android.widget.Button; 12 import android.widget.Toast; 13 14 public class MainActivity extends Activity { 15 private Button mButton; 16 private String mContent; 17 private String mPhoneNumber; 18 19 @Override 20 protected void onCreate(Bundle savedInstanceState) { 21 super.onCreate(savedInstanceState); 22 setContentView(R.layout.activity_main); 23 mButton = (Button) this.findViewById(R.id.button1); 24 mContent = "短信內容"; 25 mPhoneNumber = "1833607****"; 26 mButton.setOnClickListener(new OnClickListener() { 27 @Override 28 public void onClick(View v) { 29 // TODO Auto-generated method stub 30 send(mPhoneNumber,mContent); 31 } 32 }); 33 } 34 35 private void send(String phoneNumber, String content){ 36 SmsManager smsManager =SmsManager.getDefault(); 37 ArrayList<String> texts = smsManager.divideMessage(content); 38 for(String text : texts){ 39 smsManager.sendTextMessage(phoneNumber, null, text, null, null); 40 } 41 Toast.makeText(getApplicationContext(), "---發送成功---", Toast.LENGTH_LONG).show(); 42 } 43 44 }

SMSBroadcastReceiver.java 類實現對廣播的監聽,并讀取短信的內容

1 package com.example.android_phone; 2 3 import java.text.SimpleDateFormat; 4 import java.util.Date; 5 6 import android.content.BroadcastReceiver; 7 import android.content.Context; 8 import android.content.Intent; 9 import android.os.Bundle; 10 import android.telephony.SmsMessage; 11 import android.widget.Toast; 12 13 public class SMSBroadcastReceiver extends BroadcastReceiver{ 14 15 //信息接收廣播 16 private static final Object ACTION = "android.provider.Telephony.SMS_RECEIVED"; 17 private String sender; 18 private String content; 19 private String sendtime; 20 @Override 21 public void onReceive(Context context, Intent intent) { 22 // TODO Auto-generated method stub 23 if (intent.getAction().equals(ACTION)) { 24 StringBuffer SMSAddress = new StringBuffer(); 25 StringBuffer SMSContent = new StringBuffer(); 26 Bundle bundle = intent.getExtras(); 27 if (bundle != null) { 28 // 通過pdus獲得接收到的所有短信消息,獲取短信內容; 29 Object[] pdusObjects = (Object[]) bundle.get("pdus"); 30 // 構建短信對象數組; 31 SmsMessage[] messages = new SmsMessage[pdusObjects.length]; 32 for (int i = 0; i < pdusObjects.length; i++) { 33 // 獲取單條短信內容,以pdu格式存,并生成短信對象; 34 messages[i] = SmsMessage 35 .createFromPdu((byte[]) pdusObjects[i]); 36 } 37 for (SmsMessage message : messages) { 38 SMSAddress.append(message.getDisplayOriginatingAddress()); 39 SMSContent.append(message.getDisplayMessageBody()); 40 41 42 SMSAddress.append("短信來自:" + message.getDisplayOriginatingAddress() 43 + "\n"); 44 SMSContent.append("短信內容:" + message.getMessageBody()); 45 46 sender = message.getDisplayOriginatingAddress();// 獲取短信的發送者 47 content = message.getMessageBody();// 獲取短信的內容 48 Date date = new Date(message.getTimestampMillis()); 49 SimpleDateFormat format = new SimpleDateFormat( 50 "yyyy-MM-dd HH:mm:ss"); 51 sendtime = format.format(date);// 獲取短信發送時間; 52 // SmsManager manager = SmsManager.getDefault(); 53 // manager.sendTextMessage("5556", 54 // null,"發送人:"+sender+"-----發送時間:"+sendtime+"----內容:"+content, 55 // null, null);//把攔截到的短信發送到指定的手機,此處為5556; 56 // if ("5556".equals(sender)){ 57 // //屏蔽手機號為5556的短信,這里還可以時行一些處理,如把該信息發送到第三人的手機等等。 58 // abortBroadcast(); 59 // } 60 Toast.makeText(context, "短信內容:"+content, Toast.LENGTH_LONG).show(); 61 } 62 63 } 64 } 65 } 66 67 }

權限設置

1    <!-- 發送短信 --> 2 <uses-permission android:name="android.permission.SEND_SMS"/> 3 <!-- 接收短信 --> 4 <uses-permission android:name="android.permission.RECEIVE_SMS"/> 5 <!-- 讀取短信內容 --> 6 <uses-permission android:name="android.permission.READ_SMS"/> 7 <!-- 收到短信時廣播 --> 8 <uses-permission android:name="android.permission.BROADCAST_SMS"/> 9 <!-- 編寫短信--> 10 <uses-permission android:name="android.permission.WRITE_SMS"/> 11

廣播監聽

1     <receiver android:name=".SMSBroadcastReceiver"> 2 <intent-filter android:priority="800"> 3 <action android:name="android.provider.Telephony.SMS_RECEIVED"/> 4 </intent-filter> 5 </receiver>

?

?

---------------------------------------未完待續---------------------------------------

轉載于:https://www.cnblogs.com/zhjsll/p/3861532.html

總結

以上是生活随笔為你收集整理的短信发送接收装置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。