Cómo abrir un SMS específico en android

¿Hay una manera de abrir la actividad de mensajería en android con un SMS específico?

threadId debe ser el id del subproceso SMS / MMS que desea ver

 Intent defineIntent = new Intent(Intent.ACTION_VIEW); defineIntent.setData(Uri.parse("content://mms-sms/conversations/"+threadId)); myActivity.startActivity(defineIntent); 

Esta es la manera más simple que encontré

Prueba esto

 int req_thread_id; Uri mSmsinboxQueryUri = Uri.parse("content://sms")); Cursor cursor1 = getContentResolver().query( mSmsinboxQueryUri, new String[] { "_id", "thread_id", "address", "person", "date", "body", "type" }, null, null, null); startManagingCursor(cursor1); if (cursor1.getCount() > 0) { while (cursor1.moveToNext()) { int thread_id = cursor1.getInt(1); String address; = cursor1.getString(cursor1 .getColumnIndex(columns[0])); if("your desired no".equals(address) req_thread_id = thread_id; } } Intent defineIntent = new Intent(Intent.ACTION_VIEW); defineIntent.setData(Uri.parse("content://mms-sms/conversations/"+req_thread_id)); myActivity.startActivity(defineIntent); 

Escogí esto de la fuente para la aplicación de mensajería ( líneas 311-315 ), así que estoy bastante seguro de que va a funcionar, pero no tengo ninguna experiencia con él.

 // threadId should be the id of the sms/mms thread you want to view long threadId = 0; Intent i = new Intent("com.android.mms"); i.setData( Uri.withAppendedPath( i.getData(), Long.toString(threadId) ) ); i.setAction(Intent.ACTION_VIEW); 

Este fragmento es de un comentario en la respuesta aceptada. Publicar el método aquí para la posteridad.

 public static long findThreadIdFromAddress(Context context, String address) { if (address == null) return 0; String THREAD_RECIPIENT_QUERY = "recipient"; Uri.Builder uriBuilder = THREAD_ID_CONTENT_URI.buildUpon(); uriBuilder.appendQueryParameter(THREAD_RECIPIENT_QUERY, address); long threadId = 0; Cursor cursor = null; try { cursor = context.getContentResolver().query( uriBuilder.build(), new String[] { Contacts._ID }, null, null, null); if (cursor != null && cursor.moveToFirst()) { threadId = cursor.getLong(0); } } finally { if (cursor != null) { cursor.close(); } } return threadId; } 
  • Eliminar sms android después de recibir Sin demora
  • Mantener un registro de los SMS enviados en Android
  • Cómo recuperar la ubicación GPS a través de SMS
  • Cómo configurar mi aplicación sms por defecto en Android Kitkat?
  • Android: detecta SMS saliente, cuenta incorrecta
  • Cómo cambiar el texto de los sms de Android
  • Cómo obtener todos los mensajes de ThreadID en android
  • Cómo enviar caracteres no impresos a través de SMS
  • Leer todos los SMS de un remitente en particular
  • Extraer (analizar) la cantidad y descripción de BIZ (Transaction) sms
  • Inicie sms Actividad @ ConversarionList.class de mi propia aplicación
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.