Android 安卓:如何从AlarmManager唤醒WIFI(或3G)?

Android 安卓:如何从AlarmManager唤醒WIFI(或3G)?,android,wifi,wakelock,Android,Wifi,Wakelock,我有一个应用程序,需要每隔30分钟从服务器上提取数据,经过大量搜索,我找到了这个解决方案: 1-使用AlarmManager每30分钟通知一次应用程序,而不是让服务在后台运行。 2-使用带有部分唤醒锁定的唤醒锁定 我唯一的问题是,Wifi在睡眠时间是关闭的 当我的闹钟被触发时,我怎样才能请求我需要一个互联网连接???我不久前也遇到了同样的问题。不幸的是,我没有成功。我尝试了以下方法: WifiManager wman = (WifiManager) ctx.getSystemServic

我有一个应用程序,需要每隔30分钟从服务器上提取数据,经过大量搜索,我找到了这个解决方案: 1-使用AlarmManager每30分钟通知一次应用程序,而不是让服务在后台运行。 2-使用带有部分唤醒锁定的唤醒锁定

我唯一的问题是,Wifi在睡眠时间是关闭的


当我的闹钟被触发时,我怎样才能请求我需要一个互联网连接???

我不久前也遇到了同样的问题。不幸的是,我没有成功。我尝试了以下方法:

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

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

    }
也许你们可以和我一起玩,找到一条我没找到的路。哦,是的,别忘了在清单中设置WIFI权限

卢卡斯干杯

  • alarm manager通过接收器唤醒您的wakeful intent服务
  • wakeful intent服务获得wifi锁
  • 服务为连接注册一个接收器,并调用
    重新连接()
    重新关联()
    以及任何需要的内容(这可能是特定于设备的)
  • 服务在闩锁上等待
  • 连接wifi时,接收器会唤醒服务
  • 框架代码:

    注意Android 6(API级别23)及以上版本。 自从谷歌推出了优化打瞌睡和应用程序待机,事情变得越来越复杂。看这里- 现在,在特定时间强制访问网络要困难得多