Я пытаюсь создать код, который показывает уведомление при получении SMS. Моя проблема заключается в том, как я могу реализовать широковещательный приемник для своей основной деятельности, потому что в моем основном действии у меня также есть другие функции. Если я попытаюсь создать еще один класс, который расширяет широковещательный приемник, то как я могу назвать это из основного класса? Автоматически ли он запускает эту функцию сразу после получения сообщения или ее необходимо вызвать из основного действия?Получить SMS и показать уведомление
ответ
Если бы я был вами, я бы поставил намеренный вызов в методе onReceive вещательного приемника, на который вы передаете значение пакета, а затем на вид mainactivity, чтобы увидеть, существует ли этот пакет, и если да, сделайте любое действие, которое вы хотите do (например, показать диалог, тост и т. д.).
Передатчик широковещательной передачи будет вызываться андроидом, если вы его правильно зарегистрировали (либо с помощью кода, либо в вашем манифесте xml). Вам будет предоставлен доступ к context
в обратных вызовах получателя. В этом контексте вы можете либо создать уведомление (на основании названия этого вопроса), либо получить доступ к applicationContext
, который будет вашим подклассом Application
IF, который вы объявили в своем манифесте xml.
Вы видели this вопрос? в любом случае попробовать это:
public class SmsListener extends BroadcastReceiver{
private SharedPreferences preferences;
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
if(intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")){
Bundle bundle = intent.getExtras(); //---get the SMS message passed in---
SmsMessage[] msgs = null;
String msg_from;
if (bundle != null){
//---retrieve the SMS message received---
try{
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]);
msg_from = msgs[i].getOriginatingAddress();
String msgBody = msgs[i].getMessageBody();
}
}catch(Exception e){
// Log.d("Exception caught",e.getMessage());
}
}
}
}
}
Примечание: В вашем файле манифеста добавьте BroadcastReceiver-
<receiver android:name=".listener.SmsListener">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
Добавить это разрешение:
<uses-permission android:name="android.permission.RECEIVE_SMS" />
также вы строите уведомление с помощью Notification.Builder
@another, попробуйте реализовать в путь снижения:
public class MyActivity extends Activity {
private BroadcastReceiver receiver = new BroadcastReceiver() {
// Get the object of SmsManager
final SmsManager sms = SmsManager.getDefault();
public void onReceive(Context context, Intent intent) {
// Retrieves a map of extended data from the intent.
final Bundle bundle = intent.getExtras();
try {
if (bundle != null) {
final Object[] pdusObj = (Object[]) bundle.get("pdus");
for (int i = 0; i < pdusObj.length; i++) {
SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdusObj[i]);
String phoneNumber = currentMessage.getDisplayOriginatingAddress();
String senderNum = phoneNumber;
String message = currentMessage.getDisplayMessageBody();
Log.i("SmsReceiver", "senderNum: "+ senderNum + "; message: " + message);
// Show Alert
int duration = Toast.LENGTH_LONG;
Toast toast = Toast.makeText(context,
"senderNum: "+ senderNum + ", message: " + message, duration);
toast.show();
} // end for loop
} // bundle is null
} catch (Exception e) {
Log.e("SmsReceiver", "Exception smsReceiver" +e);
}
}
});
public void onResume() {
super.onResume();
IntentFilter filter = new IntentFilter();
filter.addAction(BROADCAST_ACTION);
this.registerReceiver(this.receiver, filter);
}
public void onPause() {
super.onPause();
this.unregisterReceiver(this.receiver);
}
}
- 1. sms уведомление
- 2. J2ME sms уведомление службы
- 3. sms уведомление не работает
- 4. Android sms-уведомление
- 5. Невозможно получить уведомление, чтобы показать
- 6. Как подавить новое SMS-уведомление?
- 7. Как подделать системное уведомление sms?
- 8. Vtiger Crm sms уведомление клиенту
- 9. Автоматическое уведомление SMS на iOS
- 10. Получить чистый список SMS-сообщений и SMS
- 11. Получите уведомление, когда пользователь получает SMS-сообщение
- 12. Обработать SMS, когда уведомление отправлено через websocket
- 13. Уведомление как whatsapp или sms app android
- 14. Показать диалог после получения sms
- 15. Push-уведомление при получении электронной почты/SMS
- 16. Показывать уведомление о полученных SMS сообщении
- 17. как удалить уведомление получать SMS в андроиде
- 18. nagios отправить sms уведомление от twilio
- 19. Android. Ошибка. Поп-уведомление SMS после перезагрузки
- 20. Уведомление android показать дату
- 21. показать уведомление по javascript
- 22. PHP Ошибка Уведомление Показать
- 23. Показать уведомление в МОФ
- 24. Уведомление о заказе - GPRS/SMS и т. Д.
- 25. Показать SMS-сообщение в TextView
- 26. Android. Показать уведомление флажок
- 27. URL-адрес переадресации и показать уведомление
- 28. Найти дублирующее объявление и показать уведомление
- 29. windows7 установить «показать значок и уведомление» программно
- 30. показать уведомление о конкретных датах и времени