Acceda a la bandeja de entrada de mensajes sin contenido UrI (contenido //: sms)

Quiero acceder a los mensajes almacenados en la bandeja de entrada a través de mi proyecto android. He intentado el método de la formación de URI para sms (contenido: // sms / inbox) y luego la consulta de varios parámetros.

Pero no puedo encontrar ninguna documentación para leer los sms de la bandeja de entrada en los documentos estándar de Android Developr. Se mencionó en varios sitios web que este contenido se ha eliminado de la sdk estándar. Es posible que la aplicación no admita una versión superior de android.

Por lo tanto, ¿cómo puedo crear un apllication para leer sms de inbox que es fiable en furture versión de android.

Por favor ayuda !!

Funciona bien en mi hito (sdk actualización 2.1)

public List<String> getSms() { Uri mSmsQueryUri = Uri.parse("content://sms/inbox"); List<String> messages = new ArrayList<String>(); Cursor cursor = null; try { cursor = mContentResolver.query(mSmsQueryUri, null, null, null, null); if (cursor == null) { Log.i(TAG, "cursor is null. uri: " + mSmsQueryUri); return messages; } for (boolean hasData = cursor.moveToFirst(); hasData; hasData = cursor.moveToNext()) { final String body = cursor.getString(cursor.getColumnIndexOrThrow("body")); messages.add(body); } } catch (Exception e) { Log.e(TAG, e.getMessage()); } finally { cursor.close(); } return messages; } 

Asegúrese de que tiene el permiso de lectura de sms:

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

Hay un uso estándar de SmsMessage para enviar mensajes. http://developer.android.com/reference/android/telephony/SmsManager.html

Sin embargo, creo que la solución Content Provider es más estable que la Concrete Class, ya que Content Provider es la capa abstracta para acceder a los datos en caso de aplicación cruzada. En la visión de largo plazo, todo podría ser cambiado. Para afrontarlo, los desarrolladores se beneficiarán de la adopción de un patrón de diseño, una clase de contenedor para manipular el proveedor de contenido (Fachada), o utilizar el patrón de objetos de acceso a datos, etc.

En el archivo de configuración de Android, podemos limitar el nivel de sdk para evitar que algo se pierda:

 <uses-sdk android:minSdkVersion="5" android:maxSdkVersion="8" android:targetSdkVersion="7" /> 

Soy un novato en el desarrollo de Android, incluso si he leído muchos documentos o libros, sé que hay un montón de magia negra en el código fuente. El cambio es demasiado rápido para escribir el documento completo (lo mantiene actualizado es imposible), así que no te preocupes por la AUTORIDAD o Clase cambiada.

Mis 2 centavos

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.