編輯:關於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();
}
}
以上就是本文的全部內容,希望對大家的學習有所幫助。
android studio綁定git進行項目多人合作開發及代碼托管
1.git的介紹git是一種項目版本控制工具,公司開發一般多用git,或者svn進行代碼托管,最近,因為項目涉及到多人合作開發,所以趁著有空分享一下經驗,以免各位走彎路。
Android系統升級的完整過程
下面是HTC官方的一個圖片,展示了Android系統從發布最終到用戶手中的一個完整的過程: Awesome Infographic: HTC Shows Us “Th
如何在Android中實現左右滑動的指引效果
本文的目的是要實現左右滑動的指引效果。那麼什麼是指引效果呢?現在的應用為了有更好的用戶體驗,一般會在應用開始顯示一些指引幫助頁面,使用戶能更好的理解應用的功能,甚至是一些
Android多媒體之錄音
錄制音頻的步驟: 1、創建錄音對象 2、指定錄音設備(初始化狀態) 3、設置錄制音頻的碼率 4、設置錄制音頻的編碼格式 5、設置錄制音頻存放的位置 6、准備錄音(准備狀態