我试图通过短信分享文本。在大多数手机上,甚至三星手机上,除了Galaxy S5之外,它看上去都不错。
以下是代码:
public static void shareWithSMS(@NonNull Context context, @Nullable String text) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.fromParts("sms", "", null));
intent.setType("vnd.android-dir/mms-sms");
intent.putExtra("sms_body", text);
context.startActivity(intent);
}它启动应用程序的短信,没有任何文字。有人知道为什么吗?
更新
其目的是启动设备的SMS应用程序,而不是发送sms。这就是我不使用SmsManager的原因。
发布于 2015-07-17 13:34:13
您有两种方法可以执行so.one,其中一种是使用smsManager(),另一种是使用Intent,所以使用此代码发送消息:
Intent smsIntent = new Intent(Intent.ACTION_VIEW);
smsIntent.setType("vnd.android-dir/mms-sms");
smsIntent.putExtra("sms_body", getString(R.string.social_invitation));
startActivity(smsIntent);享受你的守则:)
发布于 2016-04-04 09:48:20
我也遇到了同样的麻烦。我在这里找到了解决方案,launch sms application with an intent
如果android版本是Kitkat或更高版本,用户可以更改默认的sms应用程序。此方法将获得默认sms应用程序,并启动默认sms应用程序。
private void sendSMS() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) // At least KitKat
{
String defaultSmsPackageName = Telephony.Sms.getDefaultSmsPackage(this); // Need to change the build to API 19
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType("text/plain");
sendIntent.putExtra(Intent.EXTRA_TEXT, "text");
if (defaultSmsPackageName != null)// Can be null in case that there is no default, then the user would be able to choose
// any app that support this intent.
{
sendIntent.setPackage(defaultSmsPackageName);
}
startActivity(sendIntent);
}
else // For early versions, do what worked for you before.
{
Intent smsIntent = new Intent(android.content.Intent.ACTION_VIEW);
smsIntent.setType("vnd.android-dir/mms-sms");
smsIntent.putExtra("address","phoneNumber");
smsIntent.putExtra("sms_body","message");
startActivity(smsIntent);
}
}https://stackoverflow.com/questions/31476282
复制相似问题