通过意向发送短信
我想通过意向发送短信,但是当我使用这个代码时,它将我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。 有两种方法可以发送短信。
- 打开本地SMScomposer php
- 写你的消息,并从您的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