android打电话,发短信

                  此处使用两种方法实现打电话及发短信的功能。

         首先是打电话:

                 第一种方法是调用Android自带的功能实现:

                                 Intent  intent  =  new Intent(Intent.Action.CALL_BUTTON);

                                 startActivity(intent);

                如此即可打开拔号键,然后通过拔号进行打电话。

                第二种方法是传入电话号码直接拔打电话:

                                Intent intent  =  new Intent();

                                intent.setAction(Intent.ACTION_CALL);

                                intent.setData(Uri.parse("tel:" + phoneNum));

                                startActivity(intent);

                此处只要传入参数phoneNum即可。

             同时在Manifest.xml中声明权限:

                <uses-permission android:name="android.permission.CALL_PHONE"/>  //允许用户传入号码直接拔号,不需要通过用户界面确认
                <uses-permission android:name="android.permission.CALL_PRIVILEGED"/>   //允许程序将电话号码传给拔号程序,需要用户确认才会拔出电话

  

       发送短信

       同样第一种方法是直接调用系统的发短信界面:

                            Intent intent = new Intent();
                           ComponentName componentName = new ComponentName("com.android.mms","com.android.mms.ui.ConversationList");
                           intent.setComponent(componentName);
                           intent.setAction("android.intent.action.VIEW");
                          startActivity(intent);

    第二种方法是传入参数直接发送短信,支持群发:

                         

private void sendMsg(String[] phoneNum, String msg) {

  for (int i = 0; i < phoneNum.length; i++) {
   if (isPhoneNumberValid(phoneNum[i]) == true) {
    if ((phoneNum[i] == null || "".equals(phoneNum[i]))
      || (msg == null || "".equals(msg))) {
     Toast.makeText(this, "发送失败!", Toast.LENGTH_LONG).show(); // 显示一个Toast提示
    } else {
     // ---sends an SMS message to another device---
     // SmsManager sms = SmsManager.getDefault();
     String SENT_SMS_ACTION = "SENT_SMS_ACTION";
     String DELIVERED_SMS_ACTION = "DELIVERED_SMS_ACTION";

     // create the sentIntent parameter
     Intent sentIntent = new Intent(SENT_SMS_ACTION);
     PendingIntent sentPI = PendingIntent.getBroadcast(this, 0,
       sentIntent, 0);

     // create the deilverIntent parameter
     Intent deliverIntent = new Intent(DELIVERED_SMS_ACTION);
     PendingIntent deliverPI = PendingIntent.getBroadcast(this,
       0, deliverIntent, 0);
// register the Broadcast Receivers
     registerReceiver(new BroadcastReceiver() {
      @Override
      public void onReceive(Context _context, Intent _intent) {
       switch (getResultCode()) {
       case Activity.RESULT_OK:
        Toast.makeText(getBaseContext(), "短信发送成功",
          Toast.LENGTH_SHORT).show();
        break;
       case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
        Toast.makeText(getBaseContext(), "短信发送失败",
          Toast.LENGTH_SHORT).show();
        break;
       case SmsManager.RESULT_ERROR_RADIO_OFF:
        // Toast.makeText(getBaseContext(),
        // "SMS radio off failure actions",
        // Toast.LENGTH_SHORT).show();
        break;
       case SmsManager.RESULT_ERROR_NULL_PDU:
        // Toast.makeText(getBaseContext(),
        // "SMS null PDU failure actions",
        // Toast.LENGTH_SHORT).show();

break;
       }
      }
     }, new IntentFilter(SENT_SMS_ACTION));
     registerReceiver(new BroadcastReceiver() {
      @Override
      public void onReceive(Context _context, Intent _intent) {
       // Toast.makeText(getBaseContext(),
       // "SMS delivered actions", Toast.LENGTH_SHORT)
       // .show();
      }
     }, new IntentFilter(DELIVERED_SMS_ACTION));

     SmsManager manage = SmsManager.getDefault(); // 取得默认的SmsManager用于短信的发送
     List<String> all = manage.divideMessage(msg); // 短信的内容是有限的,要根据短信长度截取。逐条发送
     Iterator<String> it = all.iterator();
     while (it.hasNext()) {
      manage.sendTextMessage(phoneNum[i], null, it.next(),
        sentPI, deliverPI); // 逐条发送短息

     }
    }
   }
  }
 }


                           同样要加上权限:<uses-permission android:name="android.permission.SEND_SMS"/>

                           如此大致算是完成了。

猜你喜欢

转载自blog.csdn.net/w0100746363/article/details/7362412