Autore Topic: WakeLock e DisableKeyguard API 17-18 (su disp Samsung) [Modificato: cerco flag]  (Letto 1127 volte)

Offline l30n4rd0

  • Nuovo arrivato
  • *
  • Post: 6
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei G330 (CM11), Nexus 7 3G 32GB (2012)
  • Sistema operativo:
    Windows 8.1
Buonasera a tutti. Scrivo in questa sezione sperando di non sbagliare. Sto scrivendo la mia prima app, o almeno è quasi finita. Dico quasi perché ho un problema che non so risolvere riguardo al wake lock e/o al disablekeyguard. Purtroppo non ho modo di inserire un logcat in quanto il "problema" si verifica su un galaxy s3 e su un tab2. Praticamente la mia app è in web view e visualizza delle pagine pre-impostante (in un apposito menu). E c'è la possibilità di lanciare un link in automatico ogni 15 minuti circa. Io ho inserito delle "opzioni" in modo tale che l'utente quando abilita la funzione ripetitiva, lo schermo si accende (o rimane spento) e si disabilita il keyguad (o viene subito riabilitato). Ho fatto girare l'app su emulatori con API 17-18-19 e sul mio dispositivo (huawei g330 con cyanogenmod 11 non ufficiale) e pare funzionare grosso modo (dico grosso modo perché ogni tanto salta l'operazione una volta in maniera random nell'arco di qualche ora). Sui dispositivi della mia ragazza (i samsung riportati sopra), rispettivamente con android 4.3 e 4.2.2, se vengono abilitate le opzioni di wakelock e disableguard, l'operazione ripetitiva non parte, a random si chiude da sola... Funziona solo nel caso in cui c'è solo il partial_wake_lock. Ora io ho letto i vari deprecated... e sono giusto alla conclusione di utilizzare le flag. Di seguito troverete la TimerTask, all'interno della quale dovrei usare le flag.

TimerTask:

Codice (Java): [Seleziona]
import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;

import android.app.Activity;
import android.content.Context;
import android.util.Log;
import android.view.WindowManager;
import android.webkit.WebView;

public class ReloadWebView extends TimerTask {
        private final Activity context;
    private final WebView wv;
        private Timer timer;
        int seconds;
        boolean screen;
        boolean key;
       

        public ReloadWebView(Activity context, int seconds, boolean kl, boolean lux, WebView wv) {
                this.context = context;
                this.wv = wv;
                this.seconds = seconds;
                this.key = kl;
                this.screen = lux;
               
        }
       
        public void startTimer() {
                // Don't start this timer twice
                if(timer == null) {
                        timer = new Timer();
                        timer.schedule(this, 0, (seconds /*+ (15 + new Random().nextInt(15))*/) * 1000);
                        Log.v("ReloadWebView", "Richiamato startTimer()");
                }
        }

        @Override
    public void run() {
                if(context != null) {
                        context.runOnUiThread(new Runnable() {
                                @Override
                                public void run() {
                                        // Screen on
                                        if (screen == true) {
                                                // Accendere lo schermo
                                                wv.loadUrl("https://www.mousehuntgame.com/turn.php");
                        Log.v("ReloadWebView", "Richiamato url");
                        // With keyguard
                        if (key == false) {
                                // rilasciare lo schermo
                                Log.v("ReloadWebView", "Richiamato schermo con blocco");
                        }
                        // Without keyguard
                        else if (key == true) {
                            // togliere il keyguard
                            // rilasciare lo schermo
                            Log.v("ReloadWebView", "Richiamato schermo senza blocco");
                        }
                    }
                    // Screen off
                    else if (screen == false) {
                        wv.loadUrl("https://www.mousehuntgame.com/turn.php");
                        Log.v("ReloadWebView", "Richiamato url");
                        // With keyguard
                        if (key == false) {
                            Log.v("ReloadWebView", "Richiamato WakeLockManager() 3");
                        }
                        // Without keyguard
                        else if (key == true) {
                            // disabilitare il keyguard
                            Log.v("ReloadWebView", "Richiamato WakeLockManager() 4");
                        }
                    }
                                }
                        });
                }
        }
       
        public void stopTimer() {
                if(timer != null) {
                        timer.cancel();
                        timer.purge();
                        timer = null;
                        this.timer = null;
                        this.context.finish();
                        Log.v("ReloadWebView", "Richiamato stopTimer()");
                }
        }
       
}
« Ultima modifica: 28 Febbraio 2014, 16:35:42 CET da l30n4rd0, Reason: Parzialmente risolto (mi serve un aiuto con le flag) »