Iniciar la aplicación sms con una intención

Tengo una pregunta sobre una intención … Trato de lanzar la aplicación 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); 

Así, puedes ver que puse demasiadas cosas en mi intención, pero eso es porque no sé cómo puedo hacer … Gracias

Para iniciar el lanzamiento de la actividad sms todo lo que necesitas es esto:

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

Puede agregar extras para rellenar su propio mensaje y tal como este

 sendIntent.putExtra("sms_body", x); 

Entonces sólo startActivity con la intención.

 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); 
 Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_DEFAULT); intent.setType("vnd.android-dir/mms-sms"); startActivity(intent); 

Eso es todo lo que necesitas.

Si la versión de Android es Kitkat o superior, los usuarios pueden cambiar la aplicación sms predeterminada. Este método obtendrá la aplicación sms predeterminada y comenzará la aplicación sms predeterminada.

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

Aquí está el código que abrirá la actividad de SMS pre-poblada con el número de teléfono al que se debe enviar el SMS. Esto funciona bien en el emulador, así como el dispositivo .

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

Si desea iniciar la actividad de Composición de SMS de algunas de sus otras actividades y también tiene que pasar el número de teléfono y el texto sms, utilice este código

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

Nota: – aquí el "sms_body" y "smsto:" son claves para reconocer el texto y el teléfono no en SMS copose actividad, así que ten cuidado aquí.

Utilizar

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

Yo suelo:

 Intent sendIntent = new Intent(Intent.ACTION_MAIN); sendIntent.putExtra("sms_body", "text"); sendIntent.setType("vnd.android-dir/mms-sms"); startActivity(sendIntent); 
 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); 

Puede abrir la aplicación predeterminada de sms y pasar los detalles como a continuación:
Nota: Si desea enviar a muchos números, separe cada número con ";" Cadena interior

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

| Or | Utilice esta función:

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

En el emulador este trabajo para mí

 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 Propósito:

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

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

La mejor manera de hacer esto.

El siguiente código funciona en android 6.0.
Se abrirá la actividad de búsqueda en la aplicación de mensajería predeterminada con las conversaciones relacionadas con la cadena específica proporcionada.

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

Puede iniciar la actividad de búsqueda con una intención. Esto abrirá la actividad de búsqueda de la aplicación de mensajería predeterminada. Ahora, para mostrar una lista de conversaciones específicas en la actividad de búsqueda, puede proporcionar la cadena de búsqueda como cadena extra con la clave como

"Intent_extra_data_key"

Como se muestra en la clase onCreate de esta clase

 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; 

También puede pasar SENDER_ADDRESS de los sms como cadena extra, que enumerará todas las conversaciones con esa dirección específica del remitente.

Consulte com.android.mms.ui.SearchActivity para obtener más información

También puede comprobar esta respuesta

El mejor código que funciona con la aplicación predeterminada de SMS es.

 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); 
  • Establecer sms como leídos en Android
  • Configuración predeterminada de Android por omisión de la aplicación sms
  • Los teléfonos de Redmi no piden permisos de SMS y por lo tanto no leen sms
  • Detección de SMS entrantes y salientes
  • No se puede instanciar el receptor en BroadcastReceiver SMS
  • Twilio vs google voz api para SMS
  • ¿Cuáles son los significados de los valores en el proveedor de contenidos "content // sms /" de Android?
  • Android: apertura de la actividad de SMS con múltiples destinatarios especificados
  • Enviar SMS a través de PhoneGap en Android
  • Leer todos los SMS de un remitente en particular
  • Android enviar SMS que es visible en el hilo de SMS (sin GUI)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.