arasındaki bilgi nasıl iletilir Bir SMS uygulamasında, BroadcastReceiver öğesinden bir dizenin değerini ana yönteme aktarmak istiyorum. İşte BroadcastReceiver ve ana yöntem
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();
}
}
Ben ana Yöntemin içine Dize almak için nasıl bilmek istiyorum lütfen
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);
}
}
}
yılında bundan sonra
sizin
ReceptorSMS
sınıfında bugibi yapmalıdır daha herhangi SMS aldığınızda aktiviteyi başlamak istiyorum varsayalım 'Bu BroadcastReceiver, 'Activity' çalışana ve çalışmaya başlayana kadar herhangi bir yayın almayacak, hangi noktada 'onCreate()' yöntemi zaten bitti. –
@Mike M ile katılıyorum ve kayıt olmanız gerekiyor Kayıt Olun –
daha fazla kod ve doğru çözümü almak için bilgi gerekiyor @Josue Manuek Pareja Contreras –