我想通过意图发送短信,但是当我使用此代码时,它会将我重定向到错误的联系人:
Intent intentt = new Intent(Intent.ACTION_VIEW);
intentt.setData(Uri.parse("sms:"));
intentt.setType("vnd.android-dir/mms-sms");
intentt.putExtra(Intent.EXTRA_TEXT, "");
intentt.putExtra("address", phone number);
context.startActivity(intentt);
为什么?
另外,我知道一种跟踪短信发送的方法,但是我不知道该如何编码:
Starting activity: Intent {
act=android.intent.action.SENDTO dat=smsto:%2B**XXXXXXXXXXXX** flg=0x14000000
cmp=com.android.mms/.ui.ComposeMessageActivity }
其中XXXXXXXXXXXX是电话号码。
最佳答案
我已经从一个Blog开发了此功能。您可以通过2种方式发送短信。
打开本机短信编辑器
编写您的消息并从您的Android应用程序发送
这是第一种方法的代码。
Main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:id="@+id/relativeLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<Button
android:id="@+id/btnSendSMS"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="Send SMS"
android:layout_centerInParent="true"
android:onClick="sendSMS">
</Button>
</RelativeLayout>
活动
public class SendSMSActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public void sendSMS(View v)
{
String number = "12346556"; // The number on which you want to send SMS
startActivity(new Intent(Intent.ACTION_VIEW, Uri.fromParts("sms", number, null)));
}
/* or
public void sendSMS(View v)
{
Uri uri = Uri.parse("smsto:12346556");
Intent it = new Intent(Intent.ACTION_SENDTO, uri);
it.putExtra("sms_body", "Here you can set the SMS text to be sent");
startActivity(it);
} */
}
注意:-
使用这种方法,您不需要AndroidManifest.xml文件中的SEND_SMS权限。
对于第二种方法,请参考此BLOG。您会在这里找到很好的解释。
希望这个能对您有所帮助...
关于android - 通过 Intent 发送短信,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60791609/