Oi gente, estou usando o receiver abaixo para pegar os dados de um sms recebido e depois exibi-los num Toast, o sms é recebido (aparece a notificação), mas, por esse código abaixo, não consigo recuperar nenhum dado para exibir no Toast, alguém saberia a razão?
package learning.Android_Avancado.Aula6;
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 ReceberSms extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Bundle extras = intent.getExtras();
String phone = "";
String bodyMessage = "";
String message = "";
if(extras != null) {
//get array data from SMS
Object[] smsExtra = (Object[]) extras.get( "pdus" ); // "pdus" is the key
for(int i = 0; i < smsExtra.length; i++) {
//get sms message
SmsMessage sms = SmsMessage.createFromPdu((byte[]) smsExtra[i]);
phone = sms.getOriginatingAddress();
bodyMessage = sms.getMessageBody();
message = "SMS de: " + phone + "." + "\n" + "Mensagem: " + bodyMessage;
}
Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
Log.i("sms", message);
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="learning.Android_Avancado.Aula6"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="10" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Tela1"
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=".ReceberSms">
<intent-filter>
<action android:name="android.provider.telephony.SMS_RECEIVED" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</receiver>
</application>
</manifest>
