Buzón de entrada de SMS de consulta de Android por nombre de remitente

Quiero obtener la lista de SMS en el teléfono por un remitente específico. Estos SMS se envían desde una pasarela de SMS, así que no tengo el número del remitente. Sin embargo, sé el nombre del remitente, como "Google".

Esto es lo que he intentado hasta ahora

final String SMS_URI_INBOX = "content://sms/inbox"; Uri uri = Uri.parse(SMS_URI_INBOX); String[] projection = new String[] { "_id", "address", "person", "body", "date", "type" }; Cursor cur = getContentResolver().query(uri, projection, "person LIKE'%" + "Google" + "'", null, "date asc"); 

Sin embargo, el cursor está vacío.

Ya casi has llegado

 final String SMS_URI_INBOX = "content://sms/inbox"; Uri uri = Uri.parse(SMS_URI_INBOX); String[] projection = new String[] { "_id", "address", "person", "body", "date", "type" }; Cursor cur = getContentResolver().query(uri, projection, "address LIKE '%Google%'", null, "date asc"); 

En lugar de consultar "persona", busque "dirección". Las pasarelas de SMS utilizan el nombre como dirección.

Trate de hacer esto –

 StringBuilder smsBuilder = new StringBuilder(); final String SMS_URI_INBOX = "content://sms/inbox"; final String SMS_URI_ALL = "content://sms/"; try { Uri uri = Uri.parse(SMS_URI_INBOX); String[] projection = new String[] { "_id", "address", "person", "body", "date", "type" }; Cursor cur = getContentResolver().query(uri, projection, "address LIKE '%Google%'", null, "date desc"); if (cur.moveToFirst()) { int index_Address = cur.getColumnIndex("address"); int index_Person = cur.getColumnIndex("person"); int index_Body = cur.getColumnIndex("body"); int index_Date = cur.getColumnIndex("date"); int index_Type = cur.getColumnIndex("type"); do { String strAddress = cur.getString(index_Address); int intPerson = cur.getInt(index_Person); String strbody = cur.getString(index_Body); long longDate = cur.getLong(index_Date); int int_Type = cur.getInt(index_Type); smsBuilder.append("[ "); smsBuilder.append(strAddress + ", "); smsBuilder.append(intPerson + ", "); smsBuilder.append(strbody + ", "); smsBuilder.append(longDate + ", "); smsBuilder.append(int_Type); smsBuilder.append(" ]\n\n"); } while (cur.moveToNext()); if (!cur.isClosed()) { cur.close(); cur = null; } } else { smsBuilder.append("no result!"); } // end if } } catch (SQLiteException ex) { Log.d("SQLiteException", ex.getMessage()); } 

AndroidManifest.xml:

 <uses-permission android:name="android.permission.READ_SMS" /> 

`Try this Esto se utiliza para obtener el último mensaje recibido de una dirección. si desea leer todos los mensajes iterar este cursor.

  Uri mSmsinboxQueryUri = Uri.parse("content://sms/inbox"); Cursor cursor1 = getContentResolver().query(mSmsinboxQueryUri, new String[] { "body", "address" }, null, null, null); if (cursor1.getCount() > 0) { cursor1.moveToFirst(); String address = cursor1.getString(1); if (address.contains("Google")) { String body = cursor1.getString(0); } } 

  • Enviar SMS a través de ADB al teléfono
  • Cuando envío SMS, a veces código de resultado = 0. ¿Qué significa ese código?
  • Datos binarios SMS no recibidos en el emulador
  • Registro de SMS como en la aplicación para móviles: whatsapp
  • Estado de sms de Android
  • Iniciar una intención de mensaje SMS ya no funciona para el nuevo sistema operativo RAZR ICS de Droid
  • ¿Cómo obtengo el nombre guardado de SMS Sender Contact (Person) mediante "content: // sms / inbox"
  • Cómo actualizar el hilo de sms después de insertar un borrador en "content: // sms / draft"
  • Android: no recibe confirmación de envío de SMS en el emulador
  • Eliminar sms android después de recibir Sin demora
  • ¿Cómo acceder al almacenamiento de SMS en Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.