如果我创建一个发送文本的Android应用程序,文本是否会显示在默认的消息传递应用程序中?

时间:2015-04-12 05:56:47

标签: android sms smsmanager

我想让我的用户从我的应用中发送自定义文字。这些消息将通过SMS使用其运营商发送。我之前从未这样做过,但看起来我应该使用Android API中提供的SmsManager Class

有没有办法发送文字而不显示在默认短信应用中(即环聊,Messenger等)?如果可能,当有人回复我的应用发送的消息时会发生什么?

3 个答案:

答案 0 :(得分:1)

是的,你可以使用SmsManager发送短信,你可以尝试下面的代码:

public void sendSMS(String phoneNo, String msg){
 try {      
    SmsManager smsManager = SmsManager.getDefault();
    smsManager.sendTextMessage(phoneNo, null, msg, null, null);   

    } catch (Exception ex) {             
          ex.printStackTrace();
 } 
}

您还需要在AndroidManifest.xml中授予SEND_SMS权限才能发送消息

<uses-permission android:name="android.permission.SEND_SMS" />

如果您的消息文本超过160个字符,那么您可以更改以下代码:

ArrayList<String> parts = smsManager.divideMessage(msg); 
        smsManager.sendMultipartTextMessage(phoneNo, null, parts, null, null);

答案 1 :(得分:1)

您必须使用SmsManager类发送短信。 首先,你必须获得这个类的实例

SmsManager manager= SmsManager.getDefault();

然后将电话号码和短信传递给sendTextmessage()

manager.sendTextMessage(phoneNo,null,textMessage,null,null);

您还需要提供用户权限

    <uses-permission android:name="android.permission.SEND_SMS" />

答案 2 :(得分:0)

是的,它会出现。 在Android KitKat版本之后,无法避免将sms写入sms提供程序。 4.4+之后,默认的SMS应用程序负责将发送的消息写入短信提供商。此外,只有默认消息传递应用程序才具有删除短信的权限。