本文是关于在Android应用程序中使用SMSManager类通过电话发送文本SMS的。为此,需要具备android应用程序开发,创建新项目,运行android应用程序,视图以及单击事件按钮处理的基础知识。
SMSManager类管理诸如发送文本消息,数据消息和彩信(MMS)之类的操作。为了发送文本消息, sendTextMessage()同样用于彩信sendMultimediaMessage() ,对于数据消息,使用sendDataMessage()方法。每个函数的详细信息是:
Function |
Description |
---|---|
sendTextMessage() | sendTextMessage(String destinationAddress, String scAddress, String text, PendingIntent sentIntent, PendingIntent deliveryIntent, long messageId) |
sendDataMessage() | sendDataMessage(String destinationAddress, String scAddress, short destinationPort, byte[] data, PendingIntent sentIntent, PendingIntent deliveryIntent) |
sendMultimediaMessage() | sendMultimediaMessage(Context context, Uri contentUri, String locationUrl, Bundle configOverrides, PendingIntent sentIntent |
以下是发送文本消息的基本应用程序的示例。
方法:
第1步:创建一个新的Android应用程序。
第2步:转到AndroidManifest.xml 。
app->Manifest->AndroidManifest.xml
步骤3 :在AndroidManifest.xml中添加发送短信的权限。它将允许android应用程序发送短信。
AndroidManifest.xml
activity_main.xml
MainActivity.java
package com.example.gfg;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
EditText phonenumber,message;
Button send;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
send=findViewById(R.id.button);
phonenumber=findViewById(R.id.editText);
message=findViewById(R.id.editText2);
send.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
String number=phonenumber.getText().toString();
String msg=message.getText().toString();
try {
SmsManager smsManager=SmsManager.getDefault();
smsManager.sendTextMessage(number,null,msg,null,null);
Toast.makeText(getApplicationContext(),"Message Sent",Toast.LENGTH_LONG).show();
}catch (Exception e)
{
Toast.makeText(getApplicationContext(),"Some fiels is Empty",Toast.LENGTH_LONG).show();
}
}
});
}
}
步骤4:从以下地址打开activity_main.xml并添加以下代码。在这里,在线性布局中,添加了两个用于获取电话号码和文本消息的edittext,以及用于发送消息的按钮。
app->res->layout->activitymain.xml
activity_main.xml
步骤5:打开MainActivity。Java
app->java->com.example.gfg->MainActivity
为使用的视图创建对象,即editTexts和button。在onCreate方法中,使用findViewById()方法查找所有视图。
Viewtype object =(ViewType)findViewById(R.id.IdOfView);
由于“发送”按钮用于发送消息,因此onClickListener随按钮一起添加。现在创建两个字符串变量,并使用方法getText()将editText电话号码和消息的值存储到它们中(在使用toString()方法将其转换为字符串之前进行分配)。现在,在try块中,创建SMSManager类的实例,并获取与默认订阅ID关联的SMSManager。现在调用方法sendTextMessage()发送消息。
SmsManager smsManager=SmsManager.getDefault();
smsManager.sendTextMessage(number,null,msg,null,null);
然后将烤面包消息显示为“消息已发送”,并关闭try块。最后在catch块中显示一条Toast消息,因为如果编译器执行此代码块,则该消息未发送。
主要活动。Java
package com.example.gfg;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
EditText phonenumber,message;
Button send;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
send=findViewById(R.id.button);
phonenumber=findViewById(R.id.editText);
message=findViewById(R.id.editText2);
send.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
String number=phonenumber.getText().toString();
String msg=message.getText().toString();
try {
SmsManager smsManager=SmsManager.getDefault();
smsManager.sendTextMessage(number,null,msg,null,null);
Toast.makeText(getApplicationContext(),"Message Sent",Toast.LENGTH_LONG).show();
}catch (Exception e)
{
Toast.makeText(getApplicationContext(),"Some fiels is Empty",Toast.LENGTH_LONG).show();
}
}
});
}
}
笔记: 要在Android设备上运行应用程序,请为该应用程序启用短信权限。
Goto permissions->SMS->YourApp and enable permission.
输出:
发送信息
在消息传递应用中发送消息