在我的Android应用程序中,我已经使用以下代码实现了发送短信。
Intent smsIntent = new Intent(Intent.ACTION_VIEW);
smsIntent.putExtra("sms_body", "Hello World!");
smsIntent.putExtra("address", "0123456789");
smsIntent.setType("vnd.android-dir/mms-sms");
startActivity(smsIntent);
我的问题是,如果我在设备上有多个SMS应用程序,它会打开选择器以选择发件人应用程序。我不希望打开选择器;我想从Android的原生短信应用程序发送,而无需打开选择器。因此,任何帮助实现这一目标都将受到赞赏。
答案 0 :(得分:5)
在我的Android应用程序中,我已经使用以下代码实现了发送短信。
这不是发送短信的正确方法。请使用ACTION_SEND
或ACTION_SENDTO
(后者使用smsto:
Uri
)。您可能会遇到可以发送SMS消息但不响应您正在使用的特定Intent
结构的设备,因为这不是发送SMS消息的方式。
我不希望打开选择器
如果您的用户选择安装另一个SMS客户端,他们有权使用它,因为它是他们的设备,他们的短信费用等。用户可以选择让您的应用程序成为您的{{1的默认设置如果用户选择这样做,那么用户将不会一直向用户显示选择器。
我想从Android Native SMS应用程序发送而不打开选择器
不同的设备可以拥有不同的“本地短信应用”,由设备制造商提供,因此您无法确定什么是“原生短信应用”。而且,正如我之前提到的,“原生SMS应用程序”可能甚至无法响应您正在使用的那种奇怪的Intent
结构。
答案 1 :(得分:1)
使用短信管理器?
http://developer.android.com/reference/android/telephony/SmsManager.html
void sendTextMessage(String destinationAddress, String scAddress, String text, PendingIntent sentIntent, PendingIntent deliveryIntent)
发送基于短信的文字。