Starten Sie die SMS-Anwendung mit einer Absicht

Ich habe eine Frage zu einer Absicht … Ich versuche die SMS App zu starten …

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

also, du kannst sehen, dass ich zu viele Dinge in meine Absicht gesteckt habe, aber das liegt daran, dass ich nicht weiß, wie ich es tun kann … Danke

Um den Start der SMS-Aktivität zu starten, brauchst du nur Folgendes:

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

Sie können Extras hinzufügen, um Ihre eigene Nachricht und dergleichen zu füllen

 sendIntent.putExtra("sms_body", x); 

dann starte einfachActivity mit der Absicht.

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

Wenn die Android-Version Kitkat oder höher ist, können Benutzer die Standard-SMS-Anwendung ändern. Diese Methode ruft die Standard-SMS-App auf und startet die Standard-SMS-App.

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

Das ist alles was du brauchst.

Hier ist der Code, der die SMS-Aktivität öffnet, die bereits mit der Telefonnummer ausgefüllt ist, an die die SMS gesendet werden soll. Dies funktioniert sowohl auf dem Emulator als auch auf dem Gerät einwandfrei .

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

Wenn Sie SMS-Composing-Aktivitäten von einigen Ihrer anderen Aktivitäten starten möchten und außerdem eine Telefonnummer und SMS-Text übergeben müssen, verwenden Sie diesen Code:

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

Hinweis: Hier sind die sms_body und smsto: Tasten für die Erkennung des Textes und Telefon Nein bei SMS komponieren Aktivität, so seien Sie vorsichtig hier.

Benutzen

 Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_LAUNCHER); intent.setClassName("com.android.mms", "com.android.mms.ui.ConversationList"); 
 Intent eventIntentMessage =getPackageManager() .getLaunchIntentForPackage(Telephony.Sms.getDefaultSmsPackage(getApplicationContext)); startActivity(eventIntentMessage); 

Ich benutze:

 Intent sendIntent = new Intent(Intent.ACTION_MAIN); sendIntent.putExtra("sms_body", "text"); sendIntent.setType("vnd.android-dir/mms-sms"); startActivity(sendIntent); 

Sie können Standard-SMS-App öffnen und Details wie folgt weitergeben:
Hinweis: Wenn Sie an viele Nummern senden möchten, trennen Sie jede Nummer mit “;” innere Schnur

 String mblNumVar = "9876543210;9123456789"; Intent smsMsgAppVar = new Intent(Intent.ACTION_VIEW); smsMsgAppVar.setData(Uri.parse("sms:" + mblNumVar)); smsMsgAppVar.putExtra("sms_body", "Hello Msg Tst Txt"); startActivity(smsMsgAppVar); 

| Oder | Verwenden Sie diese function:

 void openSmsMsgAppFnc(String mblNumVar, String smsMsgVar) { Intent smsMsgAppVar = new Intent(Intent.ACTION_VIEW); smsMsgAppVar.setData(Uri.parse("sms:" + mblNumVar)); smsMsgAppVar.putExtra("sms_body", smsMsgVar); startActivity(smsMsgAppVar); } 
 try { Intent smsIntent = new Intent(Intent.ACTION_VIEW); smsIntent.setData(Uri.parse("smsto:" + Uri.encode(number))); smsIntent.putExtra("address", number); smsIntent.putExtra("sms_body", message); PackageManager pm = activity.getPackageManager(); List resInfo = pm.queryIntentActivities(smsIntent, 0); for (int i = 0; i < resInfo.size(); i++) { ResolveInfo ri = resInfo.get(i); String packageName = ri.activityInfo.packageName; if (packageName.contains("sms")) { //Log.d("TAG", packageName + " : " + ri.activityInfo.name); smsIntent.setComponent(new ComponentName(packageName, ri.activityInfo.name)); } } activity.startActivity(smsIntent); } catch (Exception e) { // Handle Error } 

Der beste Weg, dies zu tun.

 Intent sendIntent = new Intent(Intent.ACTION_SEND); //CHANGE YOUR MESSAGING ACTIVITY HERE IF REQUIRED sendIntent.setClassName("com.android.mms", "com.android.mms.ui.ComposeMessageActivity"); sendIntent.putExtra("sms_body",msgbody); sendIntent.putExtra("address",phonenumber); //FOR MMS sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///sdcard/mms.png")); sendIntent.setType("image/png"); startActivity(sendIntent); 

Der beste Code, der mit Standard-SMS-App funktioniert, ist.

 Uri SMS_URI = Uri.parse("smsto:+92324502****"); //Replace the phone number Intent sms = new Intent(Intent.ACTION_VIEW,SMS_URI); sms.putExtra("sms_body","This is test message"); //Replace the message witha a vairable startActivity(sms); 

auf Emulator diese Arbeit für mich

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

Sms Absicht:

 Intent intent = new Intent("android.intent.action.VIEW"); /** creates an sms uri */ Uri data = Uri.parse("sms:"); intent.setData(data); 

Verfassen SMS:

 Uri smsUri = Uri.parse("tel:" + to); Intent intent = new Intent(Intent.ACTION_VIEW, smsUri); intent.putExtra("address", to); intent.putExtra("sms_body", message); intent.setType("vnd.android-dir/mms-sms"); startActivity(intent); 

Der folgende Code funktioniert auf Android 6.0.
Es öffnet die Suchaktivität in der Standard-Messaging-Anwendung mit den Konversationen, die sich auf eine bestimmte angegebene Zeichenfolge beziehen.

 Intent smsIntent = new Intent(Intent.ACTION_MAIN); smsIntent.addCategory(Intent.CATEGORY_LAUNCHER); smsIntent.setClassName("com.android.mms", "com.android.mms.ui.SearchActivity"); smsIntent.putExtra("intent_extra_data_key", "string_to_search_for"); startActivity(smsIntent); 

Sie können die Suchaktivität mit einer Absicht starten. Dies öffnet die Suchaktivität der Standard-Messaging-Anwendung. Um nun eine Liste bestimmter Konversationen in der Suchaktivität anzuzeigen, können Sie die Suchzeichenfolge als Zeichenfolge mit dem Schlüssel as angeben

“intent_extra_data_key”

wie in der onCreate dieser class gezeigt

 String searchStringParameter = getIntent().getStringExtra(SearchManager.QUERY); if (searchStringParameter == null) { searchStringParameter = getIntent().getStringExtra("intent_extra_data_key" /*SearchManager.SUGGEST_COLUMN_INTENT_EXTRA_DATA*/); } final String searchString = searchStringParameter != null ? searchStringParameter.trim() : searchStringParameter; 

Sie können auch die SENDER_ADDRESS der SMS als Zeichenfolge extra übergeben, die alle Konversationen mit dieser bestimmten Absenderadresse auflistet.

Weitere Informationen finden Sie unter com.android.mms.ui.SearchActivity

Sie können diese Antwort auch überprüfen