1. ホーム
  2. android

[解決済み] インテントでSMSを送信する

2023-08-19 11:59:19

質問

インテントで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 }

ここで、XXXXXXXXXXは電話番号です。

どのように解決するのですか?

この機能は、あるブログから開発しました。SMSを送信する方法は2つあります。

  1. ネイティブのSMSコンポーザーを開く
  2. メッセージを書き、Androidアプリケーションから送信します。

1番目のメソッドのコードです。

メイン.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番目の方法については、こちらを参照してください。 ブログ . ここから良い説明を見つけることができます。

これがあなたの助けになることを願って...