在我的Android应用程序中,我只需要打开短信意图,并预填充message_body和PhoneNumber。以下是我尝试的代码:
在默认情况下一切都很好,但如果安装并将Facebook Messenger设置为默认的短信应用程序(设置->应用和通知->默认应用程序->短信应用程序),则功能会出现问题。
问题是,它打开了FB Messenger,但没有消息正文(为空),尽管它正确选择了电话号码(在FB Messenger APP中)。
此外,我尝试了以下测试,但是没有选择SMS_BODY或打开默认的Android APP。
Uri uri = Uri.parse(String.format("smsto:%s", strPhoneNumber));
Intent smsIntent = new Intent(Intent.ACTION_SENDTO, uri);
smsIntent.putExtra("sms_body", "Sample Body");
startActivityForResult(smsIntent, OPEN_SMS_APP);
在默认情况下一切都很好,但如果安装并将Facebook Messenger设置为默认的短信应用程序(设置->应用和通知->默认应用程序->短信应用程序),则功能会出现问题。
问题是,它打开了FB Messenger,但没有消息正文(为空),尽管它正确选择了电话号码(在FB Messenger APP中)。
此外,我尝试了以下测试,但是没有选择SMS_BODY或打开默认的Android APP。
smsIntent.addCategory(Intent.CATEGORY_APP_MESSAGING); // STILL DIDN'T FIX
smsIntent.putExtra(Intent.EXTRA_TEXT, "Sample Body"); // STILL DIDN'T FIX
问题
- 如果有人设置了其他第三方短信应用为默认应用,我是否可以强制打开Android默认短信应用(消息应用)?
- 或者我是否有其他方法可以使message_body参数在其他第三方应用程序中起作用?
new Intent(Intent.ACTION_VIEW, Uri.fromParts("sms", number, null))
,不要添加Intent.CATEGORY_APP_MESSAGING
。 我认为 URIsms
应该不会选择 fbmessenger 应用程序。或者是我漏掉了什么? - ADM