1

在我的 android 应用程序中,我使用以下代码实现了发送 SMS。

   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 的原生 SMS 应用程序发送。因此,我们将不胜感激任何有助于实现这一目标的帮助。

4

2 回答 2

5

在我的 android 应用程序中,我使用以下代码实现了发送 SMS。

这不是发送 SMS 消息的正确方式。请使用ACTION_SENDor ACTION_SENDTO(后者带有smsto: Uri)。您可能会遇到可以发送 SMS 消息但不响应Intent您正在使用的特定结构的设备,因为这不是发送 SMS 消息的方式。

我不想打开那个选择器

如果您的用户选择安装另一个 SMS 客户端,他们有权使用它,因为这是他们的设备、他们的 SMS 消息费等。如果用户选择,用户可以选择将您的应用程序作为您的Intent结构的默认设置这样做,这样用户就不会一直看到选择器。

我想在不打开选择器的情况下从 android Native SMS 应用程序发送

不同的设备可以有不同的“原生短信应用”,由设备制造商给出,所以你无法确定什么是“原生短信应用”。而且,正如我之前提到的,“本机 SMS 应用程序”甚至可能不会响应Intent您正在使用的那种奇怪的结构。

于 2013-01-10T15:20:15.427 回答
1

使用短信管理器?

http://developer.android.com/reference/android/telephony/SmsManager.html

void    sendTextMessage(String destinationAddress, String scAddress, String text, PendingIntent sentIntent, PendingIntent deliveryIntent)

发送基于文本的 SMS。

于 2013-01-10T15:19:24.513 回答