我的应用程序有一个启动默认短信 Activity 的按钮, 除了新版本 Android 4.4(kitkat) 之外,它在所有 android 版本上都运行良好 这是代码:
public void onClick(View arg0) {
Intent smsIntent = new Intent(Intent.ACTION_VIEW);
smsIntent.setType("vnd.android-dir/mms-sms");
smsIntent.putExtra("address", member.getPhoneNumber().trim());
context.startActivity(smsIntent);
}
我收到错误信息
11-08 02:08:32.815: E/AndroidRuntime(14733): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW typ=vnd.android-dir/mms-sms (has extras) }
我知道谷歌对默认短信应用程序处理短信 Intent 的方式进行了一些更改。 但我的应用程序不是短信应用程序,但它只有启动带有收件人号码的默认短信应用程序的功能。所以请帮忙。
最佳答案
要启动带有填充号码的 SMS 应用,请使用操作 ACTION_SENDTO
:
Intent intent = new Intent(Intent.ACTION_SENDTO);
intent.setData(Uri.parse("smsto:" + Uri.encode(phoneNumber)));
startActivity(intent);
这适用于 Android 4.4。它也应该适用于早期版本的 Android,但是由于 API 从未公开,因此行为可能会有所不同。如果您之前的方法没有问题,我可能会坚持使用 4.4 之前的方法,并为 4.4+ 使用 ACTION_SENDTO
。
关于java - Android4.4 无法处理带有 "vnd.android-dir/mms-sms"的短信 Intent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19853220/