安卓:如何在AlarmManager中唤醒WIFI(或3G)?

4

我有一个应用程序需要每30分钟从服务器中获取数据,经过大量搜索后,我找到了以下解决方案:

1- 使用AlarmManager每30分钟通知应用程序,而不是在后台保持服务运行。

2- 使用PARTIAL_WAKE_LOCK的wakelocks。

唯一的问题是,在睡眠时间Wifi处于关闭状态。

当我的闹钟触发时,我该如何请求网络连接?

3个回答

0

我之前也遇到过完全相同的问题。不幸的是,我没有成功。我尝试了以下方法:

    WifiManager wman = (WifiManager) ctx.getSystemService(Context.WIFI_SERVICE);

    try {
        wman.reconnect();
    } catch (Exception e) {
        e.printStackTrace();
        return false;

    }

也许你可以尝试一下 WifiManager,找到我没有发现的方法。哦对了,别忘了在清单文件中设置 WIFI 权限。
祝好,Lukas

0

0
  1. 闹钟管理器通过接收器唤醒您的唤醒意图服务
  2. 唤醒意图服务获取 WiFi 锁定
  3. 服务为连接性注册接收器并调用 reconnect()reassociate() 以及其他所需操作(这可能是设备特定的)
  4. 服务在等待锁存器上
  5. 当 WiFi 连接时,接收器唤醒服务

骨架代码:https://dev59.com/13fZa4cB1Zd3GeqPSonq#19968708


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接