SMSをインテント経由で送信したいのですが、このコードを使用すると、間違った連絡先にリダイレクトされます。
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);
どうして?
また、私はSMS送信に従う方法を知っていますが、これをどのようにコーディングするのかわかりません:
Starting activity: Intent {
act=Android.intent.action.SENDTO dat=smsto:%2B**XXXXXXXXXXXX** flg=0x14000000
cmp=com.Android.mms/.ui.ComposeMessageActivity }
ここで、XXXXXXXXXXXXは電話番号です。
この機能は1つのブログから開発しました。 SMSを送信するには2つの方法があります。
これは第一の方法のコードです。
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権限は必要ありません。
2番目の方法については、これを参照してください BLOG 。ここから適切な説明を見つけることができます。
これがあなたを助けることを願っています...
Uri uri = Uri.parse("smsto:YOUR_SMS_NUMBER");
Intent intent = new Intent(Intent.ACTION_SENDTO, uri);
intent.putExtra("sms_body", "The SMS text");
startActivity(intent);
次のようなインテントを作成します。
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);
次のようにインテントを作成します。
Uri uriSms = Uri.parse("smsto:1234567899");
Intent intentSMS = new Intent(Intent.ACTION_SENDTO, uriSms);
intentSMS.putExtra("sms_body", "The SMS text");
startActivity(intentSMS);
/**
* Intent to Send SMS
*
*
* Extras:
*
* "subject"
* A string for the message subject (usually for MMS only).
* "sms_body"
* A string for the text message.
* EXTRA_STREAM
* A Uri pointing to the image or video to attach.
*
* For More Info:
* https://developer.Android.com/guide/components/intents-common#SendMessage
*
* @param phoneNumber on which SMS to send
* @param message text Message to send with SMS
*/
public void startSMSIntent(String phoneNumber, String message) {
Intent intent = new Intent(Intent.ACTION_SENDTO);
// This ensures only SMS apps respond
intent.setData(Uri.parse("smsto:"+phoneNumber));
intent.putExtra("sms_body", message);
if (intent.resolveActivity(getPackageManager()) != null) {
startActivity(intent);
}
}
これは、SMSManagerを使用した別のソリューションです。
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage("PhoneNumber-example:+989147375410", null, "SMS Message Body", null, null);
特定のメッセージが必要な場合は、これを使用します。
String phoneNo = "";//The phone number you want to text
String sms= "";//The message you want to text to the phone
Intent smsIntent = new Intent(Intent.ACTION_VIEW, Uri.fromParts("sms", phoneNo, null));
smsIntent.putExtra("sms_body",sms);
startActivity(smsIntent);
uses-permission Android:name="Android.permission.SEND_SMS"/>
Prem
によって以前に記述されたように)以下のコードを記述し、以下のphone_Numberを実際の番号に置き換えます。startActivity(new Intent(Intent.ACTION_VIEW, Uri.fromParts("sms", "phone_Number", null)));