【问题标题】:Get broadcast receiver to get cellular sim network connectivity获取广播接收器以获取蜂窝 sim 网络连接
【发布时间】:2017-05-17 06:31:27
【问题描述】:

我目前正在开发与 SMS 相关的应用程序。需要检测电话何时不在服务区,以及电话何时到达服务区发送待处理消息。现在我能够找到所有网络/WIFI/移动数据连接接收器,但我想要一个接收器,当移动设备恢复移动蜂窝 sim 网络时调用它。任何帮助将不胜感激。

【问题讨论】:

    标签: android broadcastreceiver telephonymanager


    【解决方案1】:

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

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

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

    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 广播,并检查是否有任何需要重试的失败短信。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-20
      • 1970-01-01
      • 2018-02-15
      • 2020-12-02
      • 2014-08-31
      • 2011-08-04
      • 1970-01-01
      • 2017-04-01
      相关资源
      最近更新 更多