通过意向发送短信

我想通过意向发送短信,但是当我使用这个代码时,它将我redirect到错误的联系人:

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开发了这个function。 有两种方法可以发送短信。

  1. 打开本地SMScomposer php
  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 。 你会从这里find很好的解释。

希望对你有帮助…

 Uri uri = Uri.parse("smsto:0800000123"); Intent it = new Intent(Intent.ACTION_SENDTO, uri); it.putExtra("sms_body", "The SMS text"); startActivity(it); 
 Intent smsIntent = new Intent(android.content.Intent.ACTION_VIEW); smsIntent.setType("vnd.android-dir/mms-sms"); smsIntent.putExtra("address","your desired phoneNumber"); smsIntent.putExtra("sms_body","your desired message"); startActivity(smsIntent); 

希望这个帮助给某个人

试试这个代码。 它会工作

 Uri smsUri = Uri.parse("tel:123456"); Intent intent = new Intent(Intent.ACTION_VIEW, smsUri); intent.putExtra("sms_body", "sms text"); intent.setType("vnd.android-dir/mms-sms"); startActivity(intent); 

希望这会帮助你。

希望这是工作,这是在我的应用程序工作

 SmsManager.getDefault().sendTextMessage("Phone Number", null, "Message", null, null); 

这是使用SMSManager的另一个解决scheme:

 SmsManager smsManager = SmsManager.getDefault(); smsManager.sendTextMessage("PhoneNumber-example:+989147375410", null, "SMS Message Body", null, null); 

试试这个代码,它会工作

  Intent intent = new Intent(this, sendSMS.class); intent.putExtra("key_1",values(String SMS meg)); intent.putExtra("key_2",values(String mobile No)); startActivity(intent); sendSMS Class in { String msg = getIntent().getStringExtra("key_1", 0) String no = getIntent().getStringExtra("key_2", 0) // String no = "5556"; PendingIntent SendPI = PendingIntent.getBroadcast(this,0, new Intent(), 0); SmsManager smsManager = SmsManager.getDefault(); smsManager.sendTextMessage(no,null,msg, SendPI, null); } to try to send sms this way