2012-01-26 10 views
6

Este es el código de observador de SMS. Necesito comprobar solo los sms enviados. Cuando uso el content://sms/ obtengo el resultado. Pero ¿por qué no obtengo resultados cuando uso el content://sms/sent/? Estoy usando Android 2.1.contenido: // sms/enviado/no funciona

import android.app.Service; 
import android.content.ContentResolver; 
import android.content.Intent; 
import android.database.ContentObserver; 
import android.database.Cursor; 
import android.net.Uri; 
import android.os.Handler; 
import android.os.IBinder; 
import android.util.Log; 

public class smsSentService extends Service 
{ 
    ContentResolver contentResolver; 
    Uri uri=Uri.parse("content://sms/sent"); 
    Handler handler; 

    @Override 
    public IBinder onBind(Intent arg0) 
    { 
     return null; 
    } 

    @Override 
    public void onCreate() 
    { 
     contentResolver=getContentResolver(); 
     contentResolver.registerContentObserver(uri, true, new contentObserver(handler)); 
     super.onCreate(); 
    } 

    @Override 
    public void onStart(Intent intent, int startId) 
    { 
     super.onStart(intent, startId); 
    } 

    @Override 
    public void onDestroy() 
    { 
     super.onDestroy(); 
    } 

    public class contentObserver extends ContentObserver 
    { 
     public contentObserver(Handler handler) 
     { 
      super(handler); 
     } 

     @Override 
     public void onChange(boolean selfChange) 
     {     
      Cursor cursor = contentResolver.query(uri, null, null, null, null); 
      cursor.moveToFirst(); 
      String content = cursor.getString(cursor.getColumnIndex("body")); 
      Log.d("!!!!!!!!!!!!!", content); 
      super.onChange(selfChange); 
     } 
    } 
} 
+0

¿No está destinado a ser contenido: // sms/out? – giggsey

+1

contenido: // sms/out tampoco funciona. – XXX

+3

@XXX cómo resolvió su problema el mismo problema de contenido: // sms/enviado no funciona en lollipop también – Erum

Respuesta

4

Tome un vistazo a http://gbandroid.googlecode.com/svn-history/r46/trunk/MobileSpy/src/org/ddth/android/monitor/observer/AndroidSmsWatcher.java

Ese código escucha de cambios en la totalidad del contenido: // sms y comprueba el tipo para ver si se trata de un mensaje enviado.

+0

¡muchas gracias! – XXX

+0

@giggsey ¿Por qué no se puede observar el contenido: // sms/enviado? – gonzobrains

+0

@gonzobrains Puedes, y yo tengo. Aunque ninguno es una forma oficial de hacerlo. – giggsey

Cuestiones relacionadas