2

我正在编写一个应用程序,该应用程序需要在使用股票 android SMS messenger时使用联系人的名字预先填充 SMS 消息。

例如,如果我的联系人姓名是 Alex Smith。

当我选择 Alex Smith 输入消息时,我希望文本框已经有

'亚历克斯,'

在短信的开头。

请问我怎样才能做到这一点?

在此处输入图像描述

4

4 回答 4

4

从联系人中获取联系人姓名,并执行以下操作:

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 );
于 2013-07-23T07:26:49.777 回答
1

看看这里:

通过意图发送短信

您使用 Intent 发送 SMS 并通过 EXTRA_TEXT 属性附加一些预定义的文本。很容易做到。它也适用于正常的 SHARE 意图。

于 2013-07-23T07:26:12.360 回答
0

您无法更改系统应用程序,但您可以将“共享意图”从您的应用程序发送到 SMS 应用程序。如您所知,当您在某些应用程序中按下“分享”按钮时,您可以通过短信进行分享。(您将收到带有应用程序意图文本的短信)。所以,把联系人的名字放在“分享意图”中,然后发送到短信应用。

于 2013-07-23T07:23:47.027 回答
0

有点晚了,但我希望它能帮助未来的用户。

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);

}
于 2018-09-21T03:14:20.347 回答