152

インテントについて質問があります... SMS アプリを起動しようとしています...

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setType("vnd.android-dir/mms-sms");
int flags = Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP |
    Intent.FLAG_ACTIVITY_CLEAR_TOP;
intent.setFlags(flags);
intent.setData(Uri.parse("content://sms/inbox"));
context.startActivity(intent);

ですから、私がインテントに入れすぎていることがわかりますが、それは私がどのようにできるかわからないためです...ありがとう

4

21 に答える 21

245

SMSアクティビティの起動を開始するには、次のものが必要です。

Intent sendIntent = new Intent(Intent.ACTION_VIEW);         
sendIntent.setData(Uri.parse("sms:"));

あなたはあなた自身のメッセージなどを入れるためにエクストラを追加することができますこのように

sendIntent.putExtra("sms_body", x); 

次に、インテントでstartActivityを実行します。

startActivity(sendIntent);
于 2010-03-03T15:46:45.943 に答える
142
Intent smsIntent = new Intent(Intent.ACTION_VIEW);
smsIntent.setType("vnd.android-dir/mms-sms");
smsIntent.putExtra("address", "12125551212");
smsIntent.putExtra("sms_body","Body of Message");
startActivity(smsIntent);
于 2012-03-12T09:54:22.457 に答える
50

Android のバージョンが Kitkat 以上の場合、ユーザーはデフォルトの SMS アプリケーションを変更できます。このメソッドは、デフォルトの SMS アプリを取得し、デフォルトの SMS アプリを開始します。

private void sendSMS() {    
      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) // At least KitKat
      {
         String defaultSmsPackageName = Telephony.Sms.getDefaultSmsPackage(this); // Need to change the build to API 19

         Intent sendIntent = new Intent(Intent.ACTION_SEND);
         sendIntent.setType("text/plain");
         sendIntent.putExtra(Intent.EXTRA_TEXT, "text");

         if (defaultSmsPackageName != null)// Can be null in case that there is no default, then the user would be able to choose
         // any app that support this intent.
         {
            sendIntent.setPackage(defaultSmsPackageName);
         }
         startActivity(sendIntent);

      }
      else // For early versions, do what worked for you before.
      {
         Intent smsIntent = new Intent(android.content.Intent.ACTION_VIEW);
         smsIntent.setType("vnd.android-dir/mms-sms");
         smsIntent.putExtra("address","phoneNumber");         
         smsIntent.putExtra("sms_body","message");
         startActivity(smsIntent);
      }
   }
于 2014-07-17T13:13:14.347 に答える
31
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.setType("vnd.android-dir/mms-sms");
startActivity(intent);

それだけです。

于 2011-01-28T08:16:55.147 に答える
26

他のアクティビティから SMS Composing アクティビティを起動し、電話番号と SMS テキストも渡す必要がある場合は、次のコードを使用します。

Uri sms_uri = Uri.parse("smsto:+92xxxxxxxx"); 
Intent sms_intent = new Intent(Intent.ACTION_SENDTO, sms_uri); 
sms_intent.putExtra("sms_body", "Good Morning ! how r U ?"); 
startActivity(sms_intent); 

注:ここでsms_bodysmsto:は、SMS 作成アクティビティでテキストと電話番号を認識するためのキーなので、ここで注意してください。

于 2012-12-03T15:34:51.397 に答える
18

以下は、SMS の送信先の電話番号が事前入力された SMS アクティビティを開くコードです。これは、デバイスだけでなくエミュレーターでも正常に機能します

Intent smsIntent = new Intent(Intent.ACTION_SENDTO);
smsIntent.addCategory(Intent.CATEGORY_DEFAULT);
smsIntent.setType("vnd.android-dir/mms-sms");
smsIntent.setData(Uri.parse("sms:" + phoneNumber));
startActivity(smsIntent);
于 2012-05-16T06:18:17.767 に答える
5

使用する

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.setClassName("com.android.mms", "com.android.mms.ui.ConversationList");
于 2011-09-30T07:39:29.320 に答える
4

私が使う:

Intent sendIntent = new Intent(Intent.ACTION_MAIN);
sendIntent.putExtra("sms_body", "text");
sendIntent.setType("vnd.android-dir/mms-sms");
startActivity(sendIntent);
于 2012-03-08T14:17:09.460 に答える
1

Kotlinの場合は、次の ようにします。

val messageIntent = Intent(Intent.ACTION_SENDTO, Uri.parse("smsto:03xxxxxxxxx"))
    messageIntent.putExtra("sms_body", "Enter your body here")
    startActivity(messageIntent)
于 2021-08-21T10:35:13.423 に答える
0

SMS の意図 :

Intent intent = new Intent("android.intent.action.VIEW");
        /** creates an sms uri */
        Uri data = Uri.parse("sms:");
        intent.setData(data);
于 2013-08-05T10:15:41.447 に答える
0

これを使用できます。両方とも4.4以上のAndroidで正常に動作しています

    Intent smsIntent = new Intent(Intent.ACTION_VIEW);
    smsIntent.setType("vnd.android-dir/mms-sms");
    smsIntent.putExtra("address","9212107320");
    smsIntent.putExtra("sms_body","Body of Message");
    startActivity(smsIntent);

また

    Intent smsIntent = new Intent(Intent.ACTION_VIEW);
    smsIntent.putExtra("sms_body","Body of Message");
    smsIntent.setData(Uri.parse("sms:9212107320"));
    startActivity(smsIntent);
于 2020-04-05T21:12:39.200 に答える
0

エミュレーターでこれは私のために働きます

Intent i = new Intent(Intent.ACTION_VIEW, Uri.fromParts("sms", number, null));
                i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                i.putExtra("sms_body", remindingReason);

                startActivity(i);
于 2012-12-25T13:43:39.820 に答える