获取广播接收器以获得蜂窝SIM网络连接

时间:2017-05-17 06:31:28

标签: android broadcastreceiver telephonymanager

我目前正在开发与SMS相关的应用。需要检测手机何时没有服务区域和手机来到服务区域时发送待处理的消息。现在我能够找到所有网络/ WIFI /移动数据连接接收器,但我想要一个接收器,当移动获得移动蜂窝SIM网络时回叫。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我不认为在恢复蜂窝连接时会存在这样的广播。

您可以看到Android的MMS代码如何处理未在此处发送的彩信: https://android.googlesource.com/platform/packages/apps/Mms/+/master/src/com/android/mms/transaction/RetryScheduler.java

具体来说,他们将AlarmManager设置为在一段时间后再次重试,如果X尝试失败,他们会在消息传递DB中将消息标记为未传递:

long retryAt = cursor.getLong(cursor.getColumnIndexOrThrow(PendingMessages.DUE_TIME));
Intent service = new Intent(TransactionService.ACTION_ONALARM, null, context, TransactionService.class);
PendingIntent operation = PendingIntent.getService(context, 0, service, PendingIntent.FLAG_ONE_SHOT);
AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
am.set(AlarmManager.RTC, retryAt, operation);

此外,您应该注册BOOT_RECEIVED广播,并检查是否需要重试的任何失败短信。