获取WiFi wakelock不会在Android设备上保持WiFi活跃

时间:2017-05-02 08:01:26

标签: java android android-service wifi wifimanager

我正在开发一个应用程序,它有一个服务,可以不断上传需要使用WiFi的东西。当我关闭屏幕时,大约半小时后,应用程序停止上传。打开屏幕,我可以看到WiFi未连接,并在几秒钟内重新连接。我相信WiFi会睡觉。

为了防止WiFi进入睡眠状态,我获得了WiFi唤醒锁。然而,这似乎没有任何区别,WiFi仍然进入睡眠状态。我做错了什么,如何让WiFi保持活力?我正在收集如下的唤醒锁:

public MyService extends Service{
    private WifiManager wifiManager;
    private WifiManager.WifiLock wifiLock;

    @Override
    public void onCreate(){
        super.onCreate();
        wifiManager = (WifiManager) getApplicationContext().getSystemService(getApplicationContext().WIFI_SERVICE);
        wifiLock = wifiManager.createWifiLock(WifiManager.WIFI_MODE_FULL, "LockTag");
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId){
        new Thread(){

            @Override
            public void run(){
                wifiLock.acquire();
                while(True){
                    uploadFiles();
                    Thread.sleep(1000);
                }
                wifiLock.release();


            }

        }.start();
        return super.onStartCommand(intent, flags, startId);
    }
}

0 个答案:

没有答案