Почему мой ContentObserver не вызывается при отправке SMS?

Я пытаюсь определить, когда отправлено SMS. Я искал в Интернете и в StackOverflow, и все, кажется, то же самое решение. У меня есть простое действие, которое запускает службу, и в службе я пытаюсь определить, когда отправляется SMS:

MainActivity.java

import android.os.Bundle;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.util.Log;
import android.view.Menu;

public class MainActivity extends Activity {

    Intent serviceIntent;
    private static MyReceiver mServiceReceiver; 

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

    @Override
    protected void onPause() {
        Log.i("Status","Pause");
        unregisterReceiver(mServiceReceiver);
        super.onPause();
    }

    @Override
    protected void onResume() {
        Log.i("Status","Resume");

        // Inicio el Servicio
        serviceIntent = new Intent(MainActivity.this, TrackerService.class);
        startService(serviceIntent);
        // Registro el broadcast del Service para obtener los datos
        mServiceReceiver = new MyReceiver();
        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction(TrackerService.mAction);
        registerReceiver(mServiceReceiver, intentFilter);

        super.onResume();
    }

    /**
     * Receiver del Service, aqui se obtienen los datos que envia el Service
     */
    private class MyReceiver extends BroadcastReceiver{
        @Override
        public void onReceive(Context arg0, Intent arg1) {
            Log.i("ServiceReceiver", "onReceive()");
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
}

TrackerService.java

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 TrackerService extends Service{

    // Nombre del service
    public static final String mAction = "SMSTracker";
    ContentResolver content;
    ContentResolver contentResolver;

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        Log.i("Status","Service Start");

        // ContentResolver para obtener los SMS salientes
        contentResolver = this.getContentResolver();
        contentResolver.registerContentObserver(Uri.parse("content://sms/out"), true, new mObserver(new Handler()));

        return super.onStartCommand(intent, flags, startId);
    }

    /**
     * Observer que obtiene los SMS salientes
     */
    class mObserver extends ContentObserver {

        public mObserver(Handler handler) {
            super(handler);
        }

        @Override
        public void onChange(boolean selfChange) {
            super.onChange(selfChange);
            Log.i("Status","onChange");

            Uri uriSMS = Uri.parse("content://sms/out");
            Cursor cur = contentResolver.query(uriSMS, null, null, null, null);
            Log.i("SMS", "Columns: " + cur.getColumnNames());

            cur.moveToNext();
            String smsText = cur.getString(cur.getColumnIndex("body"));

            Log.i("SMS", "SMS Lenght: " + smsText.length());

        }
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        Log.i("Status","Service Destroy");
    }

    @Override
    public IBinder onBind(Intent intent) {
        Log.i("Status","Service Bind");
        return null;
    }

}

манифест


    
    

    
        
            
                

                
            
        

    


Согласно моему LogCat служба запускается, и я вижу это в запущенных службах на моем телефоне Android. Метод onChange () внутри моей службы никогда не вызывается, когда я отправляю смс. Что-то мне не хватает?

Ответы на вопрос(2)

Ваш ответ на вопрос