Android的短信管理器不发送短信 [英] Android sms manager not sending sms

查看:137
本文介绍了Android的短信管理器不发送短信的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是新的机器人。我想后点击发送按钮发送短信

  1. 在第一个我用短信管理器API。

 包com.example.smsproject;
进口android.app.Activity;
进口android.content.Intent;
进口android.os.Bundle;
进口android.telephony.SmsManager;
进口android.view.View;`输入code here`
进口android.view.View.OnClickListener;
进口android.widget.Button;
进口android.widget.EditText;
进口android.widget.Toast;

公共类Page2Activity延伸活动{

  Button按钮;
  的EditText textPhoneNo;
  @覆盖
  公共无效的onCreate(包savedInstanceState){
      super.onCreate(savedInstanceState);
      的setContentView(R.layout.main);

      按钮=(按钮)findViewById(R.id.button1);
      textPhoneNo =(EditText上)findViewById(R.id.mobilenumber);

      button.setOnClickListener(新OnClickListener(){

          @覆盖

      公共无效的onClick(视图v){

      //字符串PHONENO = textPhoneNo.getText()的toString()。
      字符串PHONENO =电话:XXXXXXXXXX;
      字符串的MessageText =短信从机器人;
      尝试 {
          SmsManager的SmsManager的= SmsManager.getDefault();
          smsManager.sendTextMessage(PHONENO,空,的MessageText,NULL,NULL);
          Toast.makeText(getApplicationContext(),短信发送成功!,
                      Toast.LENGTH_LONG).show();
      }赶上(例外五){

          Toast.makeText(getApplicationContext(),
                  短信失败,请稍后重试!,
                  Toast.LENGTH_LONG).show();
          e.printStackTrace();

      }

          }

      });

  }

}
 

  1. 在android_manifest.xml集send_sms许可

我得到了零失误,但手机短信不发送。如果您知道答案。

请让我知道,感谢您的阅读。

解决方案

使用下面的code发送SMS消息,在这里的错误会在吐司显示出来。

   - 发送短信到另一台设备---
私人无效sendSMS(字符串phoneNumber的,字符串消息)
{
    字符串SENT =SMS_SENT;
    字符串DELIVERED =SMS_DELIVERED;

    PendingIntent sentPI = PendingIntent.getBroadcast(此,0,
        新的意图(SENT),0);

    PendingIntent deliveredPI = PendingIntent.getBroadcast(此,0,
        新的意图(交付),0);

    // ---当短信已发送---
    registerReceiver(新BroadcastReceiver的(){
        @覆盖
        公共无效的onReceive(背景为arg0,意图ARG1){
            开关(的getResult code())
            {
                案例Activity.RESULT_OK:
                    Toast.makeText(getBaseContext(),短信发送
                            Toast.LENGTH_SHORT).show();
                    打破;
                案例SmsManager.RESULT_ERROR_GENERIC_FAILURE:
                    Toast.makeText(getBaseContext(),一般故障,
                            Toast.LENGTH_SHORT).show();
                    打破;
                案例SmsManager.RESULT_ERROR_NO_SERVICE:
                    Toast.makeText(getBaseContext(),无服务,
                            Toast.LENGTH_SHORT).show();
                    打破;
                案例SmsManager.RESULT_ERROR_NULL_PDU:
                    Toast.makeText(getBaseContext(),空的PDU,
                            Toast.LENGTH_SHORT).show();
                    打破;
                案例SmsManager.RESULT_ERROR_RADIO_OFF:
                    Toast.makeText(getBaseContext(),无线电关
                            Toast.LENGTH_SHORT).show();
                    打破;
            }
        }
    },新的IntentFilter(发送));

    // ---当SMS已交付---
    registerReceiver(新BroadcastReceiver的(){
        @覆盖
        公共无效的onReceive(背景为arg0,意图ARG1){
            开关(的getResult code())
            {
                案例Activity.RESULT_OK:
                    Toast.makeText(getBaseContext(),SMS递送,
                            Toast.LENGTH_SHORT).show();
                    打破;
                案例Activity.RESULT_CANCELED:
                    Toast.makeText(getBaseContext(),短信未交付,
                            Toast.LENGTH_SHORT).show();
                    打破;
            }
        }
    },新的IntentFilter(交付));

    SmsManager的短信= SmsManager.getDefault();
    sms.sendTextMessage(phoneNumber的,空,消息,sentPI,deliveredPI);
}
 

Am new for android . I want send sms after click send button

  1. first i have used sms manager api.

package com.example.smsproject;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.view.View;`enter code here`
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class Page2Activity extends Activity {

  Button button;
  EditText textPhoneNo;
  @Override
  public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.main);

      button = (Button) findViewById(R.id.button1);
      textPhoneNo = (EditText) findViewById(R.id.mobilenumber);

      button.setOnClickListener(new OnClickListener() {

          @Override

      public void onClick(View v){

      //String phoneNo = textPhoneNo.getText().toString();
      String phoneNo = "tel:xxxxxxxxxx";
      String messageText = "SMS FROM ANDROID";
      try {
          SmsManager smsManager = SmsManager.getDefault();
          smsManager.sendTextMessage(phoneNo, null, messageText, null, null);
          Toast.makeText(getApplicationContext(), "SMS Sent Successfully!",
                      Toast.LENGTH_LONG).show();
      }catch (Exception e){

          Toast.makeText(getApplicationContext(),
                  "SMS failed, please try again later ! ",
                  Toast.LENGTH_LONG).show();
          e.printStackTrace();

      }

          }

      });

  }

}

  1. set send_sms permission on android_manifest.xml

i got zero errors but sms not sending. If you have know answer.

please let me know, thanks for reading.

解决方案

Use following code to send sms Message, here the error will be shown in Toast

--sends an SMS message to another device---
private void sendSMS(String phoneNumber, String message)
{        
    String SENT = "SMS_SENT";
    String DELIVERED = "SMS_DELIVERED";

    PendingIntent sentPI = PendingIntent.getBroadcast(this, 0,
        new Intent(SENT), 0);

    PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0,
        new Intent(DELIVERED), 0);

    //---when the SMS has been sent---
    registerReceiver(new BroadcastReceiver(){
        @Override
        public void onReceive(Context arg0, Intent arg1) {
            switch (getResultCode())
            {
                case Activity.RESULT_OK:
                    Toast.makeText(getBaseContext(), "SMS sent", 
                            Toast.LENGTH_SHORT).show();
                    break;
                case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
                    Toast.makeText(getBaseContext(), "Generic failure", 
                            Toast.LENGTH_SHORT).show();
                    break;
                case SmsManager.RESULT_ERROR_NO_SERVICE:
                    Toast.makeText(getBaseContext(), "No service", 
                            Toast.LENGTH_SHORT).show();
                    break;
                case SmsManager.RESULT_ERROR_NULL_PDU:
                    Toast.makeText(getBaseContext(), "Null PDU", 
                            Toast.LENGTH_SHORT).show();
                    break;
                case SmsManager.RESULT_ERROR_RADIO_OFF:
                    Toast.makeText(getBaseContext(), "Radio off", 
                            Toast.LENGTH_SHORT).show();
                    break;
            }
        }
    }, new IntentFilter(SENT));

    //---when the SMS has been delivered---
    registerReceiver(new BroadcastReceiver(){
        @Override
        public void onReceive(Context arg0, Intent arg1) {
            switch (getResultCode())
            {
                case Activity.RESULT_OK:
                    Toast.makeText(getBaseContext(), "SMS delivered", 
                            Toast.LENGTH_SHORT).show();
                    break;
                case Activity.RESULT_CANCELED:
                    Toast.makeText(getBaseContext(), "SMS not delivered", 
                            Toast.LENGTH_SHORT).show();
                    break;                        
            }
        }
    }, new IntentFilter(DELIVERED));        

    SmsManager sms = SmsManager.getDefault();
    sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI);        
}

这篇关于Android的短信管理器不发送短信的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆