Как передать данные из приемника SMS-сообщений в соответствующий фрагмент для обновления данных. Я создал одно демо, в котором у меня было 7 разных фрагментов, в которых есть разные виды статуса. я создал внутренний широковещательный приемник, но это не очень хорошая идея, потому что, когда приходит sms, он вызывает все внутренние классы, поэтому я хочу создать в широковещательном классе приемника, а затем на sms, полученные, я хочу обновлять данные, я также хочу их хранить в базе данных и если фрагмент в настоящее время открыт, тогда обновить статус на нем, как изменить цвет кнопки на sms status change от ON до OFF.Как передавать данные из приемника SMS-сообщений на соответствующий фрагмент
У меня был установлен метод приемника sms-приемника(), пожалуйста, помогите мне.
@Override
public void onReceive(Context context, Intent intent)
{
db = new DataBaseHandler(context);
Bundle bundle = intent.getExtras();
if (bundle != null) {
Object[] pdus = (Object[]) bundle.get("pdus");
final SmsMessage[] messages = new SmsMessage[pdus.length];
for (int i = 0; i < pdus.length; i++) {
messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
if (messages[i].getOriginatingAddress().equalsIgnoreCase("+91XXXXXXXXXX"))
systemnumber = true;
}
if (systemnumber)
{
if (messages.length > 0)
{
StringBuffer content = new StringBuffer();
for (SmsMessage sms : messages)
content.append(sms.MessageBody());
mySmsText = content.toString();
}
if(mySmsText.length() == 125)
{
// here i want to pass data from broadcast receiver to it's relevant fragment
}
else if(mySmsText.length() == 231 && mySmsText.replaceAll(" +", " ").split("\\n|\\s")[0].equals("ON"))
{
// here i want to pass data from broadcast receiver to it's relevant fragment
} }
} else
}
}
U может попробовать какое-то автобус событий, Отто, EventBus и т.д. – darwin
я никогда не работать с радиовещательным приемником и смс так Я не знаю, как это сделать. –
Проверьте эту ссылку https://github.com/greenrobot/EventBus – darwin