我正在编写一个应用程序,该应用程序需要在使用股票 android SMS messenger时使用联系人的名字预先填充 SMS 消息。
例如,如果我的联系人姓名是 Alex Smith。
当我选择 Alex Smith 输入消息时,我希望文本框已经有
'亚历克斯,'
在短信的开头。
请问我怎样才能做到这一点?
从联系人中获取联系人姓名,并执行以下操作:
String contactName = "Alex"; // get it from selected contact
Intent intent = new Intent( Intent.ACTION_VIEW, Uri.parse( "sms:" + phoneNumber ) );
intent.putExtra( "sms_body", contactName+"," );
startActivity( intent );
您无法更改系统应用程序,但您可以将“共享意图”从您的应用程序发送到 SMS 应用程序。如您所知,当您在某些应用程序中按下“分享”按钮时,您可以通过短信进行分享。(您将收到带有应用程序意图文本的短信)。所以,把联系人的名字放在“分享意图”中,然后发送到短信应用。
有点晚了,但我希望它能帮助未来的用户。
void prePopulateSMS(final String mblNumVar, final String smsMsgVar) {
Log.d(TAG, "prePopulateSMS called. smsMsgVar: " + smsMsgVar);
Intent smsIntent = new Intent(android.content.Intent.ACTION_VIEW);
smsIntent.setType("vnd.android-dir/mms-sms");
smsIntent.putExtra("address", mblNumVar);
smsIntent.putExtra("sms_body", smsMsgVar);
startActivity(smsIntent);
}