인 텐트로 SMS 응용 프로그램 시작 앱을 시작하려고합니다 … Intent intent = new

의도에 대한 질문이 있습니다 … 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);

그래서, 당신은 내 의도에 너무 많은 것들을 넣었 음을 알 수 있지만, 내가 할 수있는 방법을 모르기 때문입니다 … 감사합니다.



답변

SMS 활동을 시작하려면 다음과 같이하십시오.

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

당신은 당신의 자신의 메시지를 채울 여분을 추가 할 수 있습니다

sendIntent.putExtra("sms_body", x); 

그런 다음 의도로 Activity를 시작하십시오.

startActivity(sendIntent);

답변

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);

답변

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);
      }
   }

답변

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.setType("vnd.android-dir/mms-sms");
startActivity(intent);

그게 당신이 필요한 전부입니다.


답변

다른 활동에서 SMS 작성 활동을 시작하고 전화 번호와 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_body와는 smsto:그래서 여기주의, 더 SMS의 작성 활동에서 텍스트와 전화를 인식하지위한 키입니다.


답변

다음은 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);

답변

사용하다

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.setClassName("com.android.mms", "com.android.mms.ui.ConversationList");