Oi,
Na classe ReceiverSMS tenho a seguinte codificação:
[code] @Override
public
void onReceive
(
Context context,
Intent intent
)
{
Bundle
bundle = intent.getExtras();
SmsMessage[]
msgs = null;
String
str = "";
if (
bundle != null
)
{
Object[]
pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
for (
int
i = 0
;
i < msgs.length
;
i++
)
{
msgs[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
str += "SMS from " + msgs[i].getOriginatingAddress();
str += " :";
str += msgs[i].getMessageBody().toString();
str += "\n";
}
//Toast.makeText(context, str, Toast.LENGTH_SHORT).show();
Intent
mainActivityIntent = new Intent(context, TesteActivity.class);
mainActivityIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(mainActivityIntent);
Intent
broadcastIntent = new Intent();
broadcastIntent.setAction("SMS_RECEIVED_ACTION");
broadcastIntent.putExtra("sms", str);
context.sendBroadcast(broadcastIntent);
}
}[/code]
Realizo a chamada desta classe na minha Activity e sobrescrevo o método onReceive() desta maneira:
[code] IntentFilter
intentFilter;
@Override
public
void onCreate
(
Bundle savedInstanceState
)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.teste);
intentFilter = new IntentFilter();
intentFilter.addAction("SMS_RECEIVED_ACTION");
BroadcastReceiver
intentReceiver = new BroadcastReceiver()
{
@Override
public
void onReceive
(
Context context,
Intent intent
)
{
TextView
ls_sms_view = (TextView)findViewById(R.id.io_txv_teste);
ls_sms_view.setText(intent.getExtras().getString("sms"));
}
};
registerReceiver(intentReceiver, intentFilter);
}[/code]
o SMS é recebido e interceptado. Porém o mesmo é apresentado em apenas poucos segundos. A principio, dura em tela 3 segundos. Passando estes 3 segundos, o que foi interceptado some, apresentando apenas o botão FECHAR.
O meu Manifest está dessa forma:
<receiver android:name=".ReceiverSMS" android:exported="true" >
<intent-filter android:priority="999">
<action android:name="android.provider.Telephony.SMS_RECEIVED"></action>
</intent-filter>
</receiver>
<uses-permission
android:name="android.permission.SEND_SMS">
</uses-permission>
<uses-permission
android:name="android.permission.RECEIVE_SMS">
</uses-permission>
<uses-permission
android:name="android.permission.READ_SMS">
</uses-permission>
Alguém já viu algo parecido ?
Tchauzin!