我想让我的用户从我的应用中发送自定义文字。这些消息将通过SMS使用其运营商发送。我之前从未这样做过,但看起来我应该使用Android API中提供的SmsManager Class。
有没有办法发送文字而不显示在默认短信应用中(即环聊,Messenger等)?如果可能,当有人回复我的应用发送的消息时会发生什么?
答案 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应用程序负责将发送的消息写入短信提供商。此外,只有默认消息传递应用程序才具有删除短信的权限。