当前位置: 首页 > 知识库问答 >
问题:

Android——点击按钮发送短信。

柴琦
2023-03-14

所以我试图让我的应用程序发送短信自动给给定的号码时,用户按下按钮。

我可以让它打开messenger并编写文本,但我不能让它自动发送。

我的代码如下(我想最重要的部分);

@Override
public void onClick(View a) {


    if(a.equals(sms)){
        tekst = (TextView) findViewById(R.id.txt);
        Uri tlf = Uri.parse("smsto:"+tekst.getText().toString());
        Intent c = new Intent(Intent.ACTION_VIEW, tlf);
        c.setData(tlf);
        c.putExtra("sms_body","Hjelp jeg er i fare!" );
        startActivity(c);



    }else{
        tekst = (TextView) findViewById(R.id.txt);
        Intent c = new Intent(Intent.ACTION_CALL);
        Uri tlf = Uri.parse("tel:"+tekst.getText().toString());
        c.setData(tlf);
        startActivity(c);


    }

}

那么,我怎样才能让它发送短信呢?

顺便说一句,我添加了权限:“Android。权限。发送短信”

共有3个答案

宰父涵忍
2023-03-14

试试这个。

//Declare the button and the tetviews to input number and the message
Button sendSMSBtnBtn = (Button) findViewById(R.id.btnSendSMS);
txtphoneNo = (EditText) findViewById(R.id.editTextPhoneNo);
txtMessage = (EditText) findViewById(R.id.editTextSMS);

//Calling the method sendSMSMessage in the button click event
sendSMSBtn.setOnClickListener(new View.OnClickListener() {
         public void onClick(View view) {
            sendSMSMessage();
         }
 });}

// Method to send SMS using SMS Manager
protected void sendSMSMessage() {
      Log.i("Send SMS", "");

      String phoneNo =  txtphoneNo.getText().toString();
      String message = txtMessage.getText().toString();

      try {
         SmsManager smsManager = SmsManager.getDefault();
         smsManager.sendTextMessage(phoneNo, null, message, null, null);
         Toast.makeText(getApplicationContext(), "SMS sent.",
         Toast.LENGTH_LONG).show();
      } catch (Exception e) {
         Toast.makeText(getApplicationContext(),
         "SMS faild, please try again.",
         Toast.LENGTH_LONG).show();
         e.printStackTrace();
      }
   }

注意:确保您在清单文件中设置了以下权限。

<uses-permission android:name="android.permission.SEND_SMS" />
荀学文
2023-03-14

试试这个

 try {
        SmsManager smsManager = SmsManager.getDefault();
        smsManager.sendTextMessage([number], null, [sms], null, null);
        Toast.makeText(getApplicationContext(), "SMS Sent!",
            Toast.LENGTH_SHORT).show();
  } catch (Exception e) {
        Toast.makeText(getApplicationContext(),
            "SMS faild, please try again later!",
                    Toast.LENGTH_SHORT).show();
        e.printStackTrace();

  }

其中,[number]是您想要发送短信的号码,[sms]是您想要发送的文本

龚振
2023-03-14

试试这个:

String phoneNumber = "<phone_number_here>";
String message = "Test Message";
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(phoneNumber, null, message, null, null);

请注意,这是一个非常简单的代码片段,您可以实现更多。如果您想在安装的任何其他短信客户端/应用程序中看到短信,您必须使用:

ContentValues values = new ContentValues(); 
values.put("address", "<phone_number_here>"); 
values.put("body", "Test Message"); 
getContentResolver().insert(Uri.parse("content://sms/sent"), values);

并加上:

<uses-permission android:name="android.permission.WRITE_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
 类似资料:
  • 我试图自动发送短信到某一个号码时,用户按下屏幕上的一个按钮。

  • 问题内容: 我试图在用户按下屏幕上的按钮时自动将SMS消息发送到特定号码。 这是我的代码: xxxxxxx =电话号码 我具有以下权限: 当我按下按钮时,它将带我到另一个屏幕,在该屏幕上我可以编辑文本并按发送。我只希望它自动执行此过程,而无需带我到另一个屏幕。因为已经定义了消息,所以我只想将其发送到特定号码。 而且我不确定我是否将相应的电话号码放在第二行代码中。我必须首先在其中输入国家代码吗?或者

  • 如果这个解决方案是错误的,如何处理这些点击和设置监听器? PS:请不要告诉我。

  • 我想使用按钮单击中的GCM将推送通知从一个设备发送到多个设备。我遵循了GCM的所有流程。我获得了设备的服务器密钥和注册ID,但没有使用GCM获得推送通知。我也在谷歌上搜索过,但没有找到正确的解决方案。 请建议我如何在多设备上发送推送通知。 MAYActivity.java

  • 本文向大家介绍Android实现按钮点击效果,包括了Android实现按钮点击效果的使用技巧和注意事项,需要的朋友参考一下 1、首先创建一个按钮 2、1中创建的按钮的background用到了btn_st,在drawable下创建btn_st 3、在2中用到的color1和color2,在values的strings中添加 4、java代码 (1)首先获取button   Button click

  • 为了保持一致,我将列出它们: > 在活动中拥有类的成员,并将其分配给将在活动方法中处理逻辑的实例。 在'on Create'活动方法中创建'on ClickListener',并使用setOnClickListener将其分配给按钮 附言。我试着用谷歌搜索这个主题,但我找到的唯一的东西是描述“如何”做到这一点,而不是为什么它是好是坏。