gpt4 book ai didi

Android KitKat 4.4 环聊无法处理发送短信 Intent

转载 作者:IT老高 更新时间:2023-10-28 21:44:43 25 4
gpt4 key购买 nike

用于发送短信的代码在 Android 4.3 (Jelly Bean) 之前运行良好,但在 4.4 (KitKat) 后停止运行

我只是为用户准备短信,但他们需要选择要发送到的号码。

我使用的代码是:

Intent sendIntent = new Intent(Intent.ACTION_VIEW);         
sendIntent.setData(Uri.parse("sms:"));
sendIntent.putExtra("sms_body", smsText);

activity.startActivity(sendIntent);

由于它停止工作,我也尝试了 ACTION_SENDACTION_SENDTO 都没有用,我也尝试了 sendIntent.setType("vnd.android-dir/mms-sms");,但还是没有任何效果。

我在 Stack Overflow answer 1 上查看了几个答案和 answer 2 ,但两个答案都没有满足我的要求。

我想做的事:

  • 仅使用短信应用发送短信,而不是通过提供发送 Intent 的所有应用发送短信
  • 为用户准备文本
  • 让用户选择发送消息的电话号码

对于版主:这不是重复的问题,因为问题并没有问完全相同的问题,这里需要发送没有电话号码的短信,并且没有任何问题和答案涉及。

最佳答案

我附上了通过执行以下操作解决问题的代码:

  • 检查操作系统版本
  • 如果是旧版本(KitKat 之前的版本),请使用旧方法
  • 如果是新的 API,请检查默认的短信包。如果有,则设置为包,否则,让用户选择共享应用。

代码如下:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) //At least KitKat
{
String defaultSmsPackageName = Telephony.Sms.getDefaultSmsPackage(activity); //Need to change the build to API 19

Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType("text/plain");
sendIntent.putExtra(Intent.EXTRA_TEXT, smsText);

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);
}
activity.startActivity(sendIntent);

}
else //For early versions, do what worked for you before.
{
Intent sendIntent = new Intent(Intent.ACTION_VIEW);
sendIntent.setData(Uri.parse("sms:"));
sendIntent.putExtra("sms_body", smsText);
activity.startActivity(sendIntent);
}

关于Android KitKat 4.4 环聊无法处理发送短信 Intent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20079047/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com