Actualmente registro un observador de contenido en el siguiente URI "contenido: // sms /" para escuchar los mensajes entrantes y salientes que se envían.Android - ¿Cómo consultar el proveedor de contenido SMS?
Esto parece funcionar bien y también me han tratado de eliminar de la base de datos de SMS, pero sólo se puede eliminar un tema entero de la siguiente URI "contenido: // SMS/conversaciones /"
Aquí está el código que utilizar para ese
String url = "content://sms/";
Uri uri = Uri.parse(url);
getContentResolver().registerContentObserver(uri, true, new MyContentObserver(handler));
}
class MyContentObserver extends ContentObserver {
public MyContentObserver(Handler handler) {
super(handler);
}
@Override public boolean deliverSelfNotifications() {
return false;
}
@Override public void onChange(boolean arg0) {
super.onChange(arg0);
Log.v("SMS", "Notification on SMS observer");
Message msg = new Message();
msg.obj = "xxxxxxxxxx";
handler.sendMessage(msg);
Uri uriSMSURI = Uri.parse("content://sms/");
Cursor cur = getContentResolver().query(uriSMSURI, null, null,
null, null);
cur.moveToNext();
String protocol = cur.getString(cur.getColumnIndex("protocol"));
if(protocol == null){
Log.d("SMS", "SMS SEND");
int threadId = cur.getInt(cur.getColumnIndex("thread_id"));
Log.d("SMS", "SMS SEND ID = " + threadId);
Cursor c = getContentResolver().query(Uri.parse("content://sms/outbox/" + threadId), null, null,
null, null);
c.moveToNext();
int p = cur.getInt(cur.getColumnIndex("person"));
Log.d("SMS", "SMS SEND person= " + p);
//getContentResolver().delete(Uri.parse("content://sms/conversations/" + threadId), null, null);
}
else{
Log.d("SMS", "SMS RECIEVE");
int threadIdIn = cur.getInt(cur.getColumnIndex("thread_id"));
getContentResolver().delete(Uri.parse("content://sms/conversations/" + threadIdIn), null, null);
}
}
}
Sin embargo, quiero ser capaz de obtener la recipricant y el texto del mensaje del proveedor de contenido de SMS, puede alguien decirme cómo hacer esto?
¿Y también cómo eliminar un mensaje en lugar de un hilo completo?
He estado progresando en esto en 1.5 pero lo ejecuté en 1.6 y mi observador de contenido deja de funcionar, en 1.5 está configurado para "content: // sms /" pero debería ser algo diferente para 1.6? –
Un buen artículo sobre los métodos de mensajería SMS de Android: http: //mobdev.olin.edu/mobdevwiki/FrontPage/Tutorials/SMS% 20Messaging –
Hola Donal, he visto tu pregunta mientras buscaba una solución para mi problema. En realidad, quiero saber sobre el código que ha publicado antes de la declaración de la clase. Esos códigos pertenecen a una clase externa o qué? Por cierto, si resolvió su problema, ¿puede guiarme un poco? Estoy usando Android 2.2 y mi problema es bastante similar al tuyo. –