Android - El receptor de difusión no se está disparando
Sé que esto se ha pedido MUCHO aquí, pero he estado rastreando las interwebs durante horas e incluso he reutilizado parte de mi código anterior para recibir sms 'y obtuve ... nada.
Así que, aquí va, la aplicación básica para recibir SMS pero la aplicación nunca recibe la intención. Pensé que la intención podría ignorarse si el texto se envía desde el mismo teléfono, pero ese no parece ser el caso, ya que otras aplicaciones recogen el texto bien.
Aquí está mi manifiesto:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.encima.smsreceiver"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".MainActivity" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name=".MessageReceiver">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED"></action>
</intent-filter>
</receiver>
</application>
<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
</manifest>
Y aquí está el receptor, nada parece ser nuevo aquí, así que no tengo idea de cuál es el problema:
package com.encima.smsreceiver;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.util.Log;
import android.widget.Toast;
public class MessageReceiver extends BroadcastReceiver {
private static final String TAG = "Message recieved";
@Override
public void onReceive(Context context, Intent intent) {
Bundle pudsBundle = intent.getExtras();
Object[] pdus = (Object[]) pudsBundle.get("pdus");
SmsMessage messages =SmsMessage.createFromPdu((byte[]) pdus[0]);
Log.i(TAG, messages.getMessageBody());
Toast.makeText(context, "SMS Received : "+messages.getMessageBody(),
Toast.LENGTH_LONG).show();
}
}
El teléfono de depuración que estoy usando ejecuta 2.2.2 y tengo otras aplicaciones ejecutándose que detectan sms, incluyendo algunas mías.
Cualquier idea sobre esto sería apreciada!
Gracia