android 打开短信应用,android-以编程方式发送短信而不打开短信应用
android-以编程方式发送短信而不打开短信应用到目前为止,我正在使用以下代码通过我的应用将SMS发送到另一部手机。Intent intent = new Intent( Intent.ACTION_VIEW, Uri.parse( "sms:" + srcNumber));intent.putExtra( "sms_body", message );startActivity(intent);
android-以编程方式发送短信而不打开短信应用
到目前为止,我正在使用以下代码通过我的应用将SMS发送到另一部手机。
Intent intent = new Intent( Intent.ACTION_VIEW, Uri.parse( "sms:" + srcNumber));
intent.putExtra( "sms_body", message );
startActivity(intent);
但是,这将打开本机消息传递应用程序,从而将我的应用程序的活动置于后台。 是否可以在不打开本机消息传递应用程序的情况下直接发送SMS? 如果是,怎么办?
5个解决方案
106 votes
您可以通过以下方式从应用程序发送消息:
public void sendSMS(String phoneNo, String msg) {
try {
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(phoneNo, null, msg, null, null);
Toast.makeText(getApplicationContext(), "Message Sent",
Toast.LENGTH_LONG).show();
} catch (Exception ex) {
Toast.makeText(getApplicationContext(),ex.getMessage().toString(),
Toast.LENGTH_LONG).show();
ex.printStackTrace();
}
}
另外,您还需要在AndroidManifest.xml中授予的许可才能发送消息
Himanshu Agarwal answered 2019-12-25T10:17:12Z
14 votes
public void sendLongSMS() {
String phoneNumber = "0123456789";
String message = "Hello World! Now we are going to demonstrate " +
"how to send a message with more than 160 characters from your Android application.";
SmsManager smsManager = SmsManager.getDefault();
ArrayList parts = smsManager.divideMessage(message);
smsManager.sendMultipartTextMessage(phoneNumber, null, parts, null, null);
}
并且不要忘记添加
Abhishek Chaubey answered 2019-12-25T10:17:32Z
8 votes
发送带有许可请求的短信:
附加清单:
添加Java函数:
void sendSmsMsgFnc(String mblNumVar, String smsMsgVar)
{
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.SEND_SMS) == PackageManager.PERMISSION_GRANTED)
{
try
{
SmsManager smsMgrVar = SmsManager.getDefault();
smsMgrVar.sendTextMessage(mblNumVar, null, smsMsgVar, null, null);
Toast.makeText(getApplicationContext(), "Message Sent",
Toast.LENGTH_LONG).show();
}
catch (Exception ErrVar)
{
Toast.makeText(getApplicationContext(),ErrVar.getMessage().toString(),
Toast.LENGTH_LONG).show();
ErrVar.printStackTrace();
}
}
else
{
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
{
requestPermissions(new String[]{Manifest.permission.SEND_SMS}, 10);
}
}
}
Sujay U N answered 2019-12-25T10:18:01Z
5 votes
是的,找到我自己问题的答案:)
相同地使用以下代码:
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(srcNumber, null, message, null, null);
这要求在Android清单xml上声明以下权限。
SoulRayder answered 2019-12-25T10:18:30Z
2 votes
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(phoneNo, null, sms, null, null);
Dilavar M answered 2019-12-25T10:18:46Z
更多推荐
所有评论(0)