Android收发短信

来源:互联网 发布:mysql 返回错误信息 编辑:程序博客网 时间:2024/04/30 03:31

调用短信编辑界面

Intent smsIntent = new Intent(Intent.ACTION_SENDTO,Uri.parse("sms:5556"));smsIntent.putExtra("sms_body", "Press send to send me");startActivity(smsIntent);

发送短信比较简单:

String SENT_SMS_ACTION = "SENT_SMS_ACTION";String DELIVERED_SMS_ACTION = "DELIVERED_SMS_ACTION";SmsManager smsManager = SmsManager.getDefault();String sendTo = "5556";String myMessage = "Android supports programmatic SMS messaging!";// Create the sentIntent parameterIntent sentIntent = new Intent(SENT_SMS_ACTION);PendingIntent sentPI = PendingIntent.getBroadcast(getApplicationContext(),0,sentIntent, 0);// Create the deliveryIntent parameterIntent deliveryIntent = new Intent(DELIVERED_SMS_ACTION);PendingIntent deliverPI = PendingIntent.getBroadcast(getApplicationContext(),            0,deliveryIntent,0);// Register the Broadcast ReceiversregisterReceiver(new BroadcastReceiver(){public void onReceive(Context _context, Intent _intent){switch (getResultCode()) {case Activity.RESULT_OK: break;case SmsManager.RESULT_ERROR_GENERIC_FAILURE: break;case SmsManager.RESULT_ERROR_RADIO_OFF:break;case SmsManager.RESULT_ERROR_NULL_PDU:break;}}},new IntentFilter(SENT_SMS_ACTION));registerReceiver(new BroadcastReceiver() {@Overridepublic void onReceive(Context _context, Intent _intent){}},new IntentFilter(DELIVERED_SMS_ACTION));// Send the messagesmsManager.sendTextMessage(sendTo, null, myMessage, sentPI, deliverPI);

接受短信要注册一个listener:

        final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";        IntentFilter filter = new IntentFilter(SMS_RECEIVED);        BroadcastReceiver receiver = new IncomingSMSReceiver();        registerReceiver(receiver, filter);
自定义的listener:

class IncomingSMSReceiver extends BroadcastReceiver {private static final String queryString = "@echo";private static final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";public void onReceive(Context _context, Intent _intent) {if (_intent.getAction().equals(SMS_RECEIVED)) {SmsManager sms = SmsManager.getDefault();Bundle bundle = _intent.getExtras();if (bundle != null) {Object[] pdus = (Object[]) bundle.get("pdus");SmsMessage[] messages = new SmsMessage[pdus.length];for (int i = 0; i < pdus.length; i++)messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);for (int i=0; i<messages.length; i++){SmsMessage message = messages[i];String msg = message.getMessageBody();String to = message.getOriginatingAddress();if (msg.toLowerCase().startsWith(queryString)) {String out = msg.substring(queryString.length());sms.sendTextMessage(to, null, out, null, null);}}}}}}



原创粉丝点击