package lab.sodino.servicecenteraddress;
import android.app.Activity;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.telephony.gsm.SmsManager;
import android.telephony.gsm.SmsMessage;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.LinearLayout.LayoutParams;
public class ServiceCenterAddressAct extends Activity {
private static final String ACTION_SMS_SEND = "lab.sodino.sms.send";
private static final String ACTION_SMS_DELIVERY = "lab.sodino.sms.delivery";
private static final String ACTION_SMS_RECEIVER = "android.provider.Telephony.SMS_RECEIVED";
private TextView serviceCenterAddressText;
private SMSReceiver sendReceiver;
private SMSReceiver deliveryReceiver;
private SMSReceiver smsReceiver;

@Override
public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   LinearLayout.LayoutParams layParams = new LinearLayout.LayoutParams(
     LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
   LinearLayout linearLay = new LinearLayout(this);
   linearLay.setOrientation(LinearLayout.VERTICAL);
   linearLay.setLayoutParams(layParams);
   TextView textView = new TextView(this);
   textView.setBackgroundColor(0xffffffff);
   textView.setTextColor(0xff0000ff);
   textView.setTextSize(20);
   textView.setText("点击发送按钮将发送自定义字符串至10086");
   textView.setGravity(Gravity.CENTER);
   linearLay.addView(textView);
   Button btnSend = new Button(this);
   // LinearLayout.LayoutParams btnParams = new LinearLayout.LayoutParams(
   // LinearLayout.LayoutParams.FILL_PARENT,
   // LinearLayout.LayoutParams.WRAP_CONTENT);
   btnSend.setText("发送");
   btnSend.setOnClickListener(new Button.OnClickListener() {
    public void onClick(View v) {
     serviceCenterAddressText.setText("正在等待发送短信...");
     sendSms();
    }
   });
   linearLay.addView(btnSend);
   serviceCenterAddressText = new TextView(this);
   serviceCenterAddressText.setText("正在等待发送短信...");
   serviceCenterAddressText.setBackgroundColor(0xffffffff);
   serviceCenterAddressText.setTextColor(0xff0000ff);
   serviceCenterAddressText.setTextSize(20);
   serviceCenterAddressText.setGravity(Gravity.LEFT);
   linearLay.addView(serviceCenterAddressText);
   setContentView(linearLay);
   // 注册send
   sendReceiver = new SMSReceiver();
   IntentFilter sendFilter = new IntentFilter(ACTION_SMS_SEND);
   registerReceiver(sendReceiver, sendFilter);
   // 注册delivery
   deliveryReceiver = new SMSReceiver();
   IntentFilter deliveryFilter = new IntentFilter(ACTION_SMS_DELIVERY);
   registerReceiver(deliveryReceiver, deliveryFilter);
   // 注册接收下行receiver
   smsReceiver = new SMSReceiver();
   IntentFilter receiverFilter = new IntentFilter(ACTION_SMS_RECEIVER);
   registerReceiver(smsReceiver, receiverFilter);
}
protected void onPause() {
   unregisterReceiver(sendReceiver);
   unregisterReceiver(deliveryReceiver);
   unregisterReceiver(smsReceiver);
}
private void sendSms() {
   String smsBody = "lab.sodino.sms.test";
   String smsAddress = "10086";
   SmsManager smsMag = SmsManager.getDefault();
   Intent sendIntent = new Intent(ACTION_SMS_SEND);
   PendingIntent sendPI = PendingIntent.getBroadcast(this, 0, sendIntent,
     0);
   Intent deliveryIntent = new Intent(ACTION_SMS_DELIVERY);
   PendingIntent deliveryPI = PendingIntent.getBroadcast(this, 0,
     deliveryIntent, 0);
   smsMag.sendTextMessage(smsAddress, null, smsBody, sendPI, deliveryPI);
}
public class SMSReceiver extends BroadcastReceiver {
   public void onReceive(Context context, Intent intent) {
    String actionName = intent.getAction();
    int resultCode = getResultCode();
    if (actionName.equals(ACTION_SMS_SEND)) {
     switch (resultCode) {
     case Activity.RESULT_OK:
      serviceCenterAddressText
        .append("/n[Send]SMS Send:Successed!");
      break;
     case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
      serviceCenterAddressText
        .append("/n[Send]SMS Send:RESULT_ERROR_GENERIC_FAILURE!");
      break;
     case SmsManager.RESULT_ERROR_NO_SERVICE:
      serviceCenterAddressText
        .append("/n[Send]SMS Send:RESULT_ERROR_NO_SERVICE!");
      break;
     case SmsManager.RESULT_ERROR_NULL_PDU:
      serviceCenterAddressText
        .append("/n[Send]SMS Send:RESULT_ERROR_NULL_PDU!");
      break;
     case SmsManager.RESULT_ERROR_RADIO_OFF:
      break;
     }
    } else if (actionName.equals(ACTION_SMS_DELIVERY)) {
     switch (resultCode) {
     case Activity.RESULT_OK:
      serviceCenterAddressText
        .append("/n[Delivery]SMS Delivery:Successed!");
      break;
     case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
      serviceCenterAddressText
        .append("/n[Delivery]SMS Delivery:RESULT_ERROR_GENERIC_FAILURE!");
      break;
     case SmsManager.RESULT_ERROR_NO_SERVICE:
      serviceCenterAddressText
        .append("/n[Delivery]SMS Delivery:RESULT_ERROR_NO_SERVICE!");
      break;
     case SmsManager.RESULT_ERROR_NULL_PDU:
      serviceCenterAddressText
        .append("/n[Delivery]SMS Delivery:RESULT_ERROR_NULL_PDU!");
      break;
     case SmsManager.RESULT_ERROR_RADIO_OFF:
      serviceCenterAddressText
        .append("/n[Delivery]SMS Delivery:RESULT_ERROR_RADIO_OFF!");
      break;
     }
     serviceCenterAddressText.append("/n正在等待下行短信...");
    } else if (actionName.equals(ACTION_SMS_RECEIVER)) {
     System.out.println("[Sodino]result = " + resultCode);
     Bundle bundle = intent.getExtras();
     if (bundle != null) {
      Object[] myOBJpdus = (Object[]) bundle.get("pdus");
      SmsMessage[] messages = new SmsMessage[myOBJpdus.length];
      for (int i = 0; i < myOBJpdus.length; i++) {
       messages[i] = SmsMessage
         .createFromPdu((byte[]) myOBJpdus[i]);
      }
      SmsMessage message = messages[0];
      serviceCenterAddressText.append("/n短信服务中心号码为:"
        + message.getServiceCenterAddress());
     }
    }
   }
}
}
最近下载更多
mmmzzz  LV1 2020年3月5日
wangshihua  LV19 2019年5月10日
821497507  LV12 2018年1月8日
zhyazaq  LV2 2016年8月18日
oprest  LV1 2016年8月11日
1349798978  LV1 2016年8月7日
cquptjxm  LV1 2015年12月21日
977747yxl  LV3 2014年9月26日
谭永放  LV14 2013年8月4日
最代码官方  LV167 2013年7月31日
最近浏览更多
yjp233  LV6 2023年5月4日
yzhszz  LV3 2022年12月27日
cxywt12  LV2 2022年5月20日
lvbs977  LV2 2021年10月13日
139456  LV3 2021年5月31日
Qxjh00  LV2 2021年3月4日
natism  LV9 2020年12月3日
1194837897  LV5 2020年11月18日
irivn007  LV15 2020年10月24日
曾珧的jsp小哥  LV12 2020年10月23日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友