編輯:關於Android編程
本文實例為大家分享了Android創建發送和接收短信應用的簡單實現過程,供大家參考,具體內容如下
一、接收短信
項目的結構如下:一個簡單的接收和發送短信的功能
1、定義一個接收短信的廣播:當手機接收到一條短信的時候,系統會發出一條值為android.provider.Telephony.SMS_RECEIVED 的廣播,這條廣播裡攜帶著與短信相關的所有數據。
// 接收短信的廣播 class MessageReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Bundle bundle = intent.getExtras(); Object[] pdus = (Object[]) bundle.get("pdus"); // 提取短信消息 SmsMessage[] messages = new SmsMessage[pdus.length]; for (int i = 0; i < messages.length; i++) { messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]); } String address = messages[0].getOriginatingAddress(); // 獲取發送方號碼 String fullMessage = ""; for (SmsMessage message : messages) { fullMessage += message.getMessageBody(); // 獲取短信內容 } textView.setText("address; " + address + ", message: " + fullMessage); abortBroadcast(); } }
2、 注冊廣播,這裡我們動態在代碼中注冊:
// 注冊接收廣播 IntentFilter intentFilter1 = new IntentFilter(); intentFilter1.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY); intentFilter1.addAction("android.provider.Telephony.SMS_RECEIVED"); messageReceiver = new MessageReceiver(); registerReceiver(messageReceiver, intentFilter1);
3、 聲明權限:
<uses-permission android:name="android.permission.SEND_SMS" /> <uses-permission android:name="android.permission.RECEIVE_SMS" />
二、發送短信
1、 發送短信:用getDefault方法得到SmsManager對象,調用sendTextMessage方法發送短信
// 發送短信 public void send(View view) { SmsManager smsManager = SmsManager.getDefault(); String destinationAddress = "15527100207"; String text = "我愛你!"; Intent intent1 = new Intent(SENT_SMS_ACTION); PendingIntent sentIntent = PendingIntent.getBroadcast(this, 0, intent1, 0); Intent intent2 = new Intent(DELIVERY_SMS_ACTION); PendingIntent deliveryIntent = PendingIntent.getBroadcast(this, 0, intent2, 0); smsManager.sendTextMessage(destinationAddress, null, text, sentIntent, deliveryIntent); // aidl服務,進程間的通信 }
我們具體了解一下sendTextMessage方法一個參數的含義:
public void sendTextMessage(String destinationAddress, String scAddress, String text,PendingIntent sentIntent, PendingIntent deliveryIntent) destinationAddress: // 目的地,也就是對方的手機號 scAddress: // 服務中心地址,為空的話就是默認的SMSC text: // 發送消息的具體內容 sentIntent: // 當消息成功或者失敗發送時,就發起這個廣播 deliveryIntent: // 當消息到達目的地時,就發起這個廣播
2、 sentIntent的廣播:
// 發送短信的狀態廣播 class MessageBroadcast extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // 一個10位數的號碼發送,也能成功,但是對方沒有接收短信。 if (getResultCode() == RESULT_OK) { Toast.makeText(MainActivity.this, "發送成功!", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(MainActivity.this, "發送失敗!", Toast.LENGTH_SHORT).show(); } } }
3、 deliveryIntent的廣播:
// 當消息被傳遞給收件人時 class DeliveryBroadcast extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Toast.makeText(MainActivity.this, "對方接收短信成功!", Toast.LENGTH_SHORT).show(); } }
以上就是本文的全部內容,希望對大家的學習有所幫助。
1.git的介紹git是一種項目版本控制工具,公司開發一般多用git,或者svn進行代碼托管,最近,因為項目涉及到多人合作開發,所以趁著有空分享一下經驗,以免各位走彎路。
下面是HTC官方的一個圖片,展示了Android系統從發布最終到用戶手中的一個完整的過程: Awesome Infographic: HTC Shows Us “Th
本文的目的是要實現左右滑動的指引效果。那麼什麼是指引效果呢?現在的應用為了有更好的用戶體驗,一般會在應用開始顯示一些指引幫助頁面,使用戶能更好的理解應用的功能,甚至是一些
錄制音頻的步驟: 1、創建錄音對象 2、指定錄音設備(初始化狀態) 3、設置錄制音頻的碼率 4、設置錄制音頻的編碼格式 5、設置錄制音頻存放的位置 6、准備錄音(准備狀態