In einer SMS-Anwendung möchte ich einen Wert einer Zeichenfolge von de BroadcastReceiver an die Hauptmethode übergeben.Wie übermittele ich Informationen zwischen BroadcastReceiver und Hauptmethode
public class LucesAlarma extends AppCompatActivity {
IntentFilter intentFilterLA;
private BroadcastReceiver intentRecieverLA = new BroadcastReceiver()
{
@Override
public void onReceive(Context context, Intent intent)
{
final String MENSAJE = intent.getExtras().getString("mensaje");
String NUMERODELMENSAJE = intent.getExtras().getString("numero");
}
};
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_luces_alarma);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
intentFilterLA = new IntentFilter();
intentFilterLA.addAction("SMS_RECEIVED_ACTION");
//I want to use the String Mensaje from the BroadcastReceiver here
}
@Override
protected void onResume()
{
registerReceiver(intentRecieverLA, intentFilterLA);
super.onResume();
}
@Override
protected void onPause()
{
unregisterReceiver(intentRecieverLA);
super.onPause();
}
}
Hier ist der SMS-Empfänger Code
public class ReceptorSMS extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent)
{
Bundle bundle = intent.getExtras();
SmsMessage[]messages=null;
String str = "";
String num = "";
String men = "";
if(bundle != null)
{
Object[] pdus = (Object[]) bundle.get("pdus");
assert pdus != null;
messages = new SmsMessage[pdus.length];
for (int i=0 ; i<messages.length;i++)
{
messages[i]=SmsMessage.createFromPdu((byte[])pdus[i]);
num = messages[i].getDisplayOriginatingAddress();
str += "Mensaje de" +messages[i].getOriginatingAddress();
str += ":";
str += messages[i].getMessageBody();
str += "\n";
men = messages[i].getMessageBody();
}
// Toast.makeText(context,str,Toast.LENGTH_SHORT).show();
Intent broadcastIntent = new Intent();
broadcastIntent.setAction("SMS_RECEIVED_ACTION");
broadcastIntent.putExtra("sms", str);
broadcastIntent.putExtra("mensaje", men);
broadcastIntent.putExtra("numero", num);
context.sendBroadcast(broadcastIntent);
}
}
}
Bitte ich möchte wissen, wie diese Zeichenfolge in das Haupt Methot zu bekommen.
Das ' BroadcastReceiver "erhält keine Broadcasts, bis die' Activity' aktiv ist und zu diesem Zeitpunkt die 'onCreate()' Methode bereits ausgeführt wurde. –
Ich stimme @Mike M und Sie müssen registrieren und die Registrierung Empfänger –
mehr Code und Info wird benötigt, um die richtige Lösung @Josue Manuek Pareja Contreras –