Как сохранить Screen On во время зацикливания URL-адресов в Browser.apk? - PullRequest
0 голосов
/ 26 марта 2012

В настоящее время я использую IntentService для зацикливания URL-адресов в Browser.apk. Я запускаю его, пока батарея не разрядится. Вот мой грязный код. =) * * Тысяча одна

@Override
protected void onHandleIntent(Intent intent) {
    int size = intent.getStringArrayExtra("addresses").length;
    int counter = sp.getInt("counter", 0);
    String address = intent.getStringArrayExtra("addresses")[counter];
    Intent i = new Intent(Intent.ACTION_VIEW);

    i.setData(Uri.parse(address));
    i.setFlags(Intent.FLAG_FROM_BACKGROUND | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(i);

    counter++;
    if(counter == size) {
        counter = 0;
    }
    spe.putInt("counter", counter);
    spe.commit();
}

Я пытался использовать wakelock, но не все устройства не работают. Он работает с Motorola Xoom, но не с планшетом Thinkpad.

Знаете ли вы другой вариант, кроме использования wakelock. Или как правильно реализовать wakelock?

Могу ли я сказать браузеру, что при загрузке URL я должен держать экран включенным? Используя намерение или другие средства.

Ответы [ 2 ]

1 голос
/ 26 марта 2012

Для открытия экрана устройства, если устройство находится в спящем режиме, используйте код ниже:

       //acquireLock(context);
PowerManager pm = (PowerManager)context.getSystemService(Context.POWER_SERVICE);
         boolean isScreenOn = pm.isScreenOn();
         Log.e("screen on.................................", ""+isScreenOn);
         if(isScreenOn==false)
         {
              WakeLock wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK |PowerManager.ACQUIRE_CAUSES_WAKEUP |PowerManager.ON_AFTER_RELEASE,"MyLock");
              wl.acquire(10000);
              WakeLock wl_cpu = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,"MyCpuLock");
              wl_cpu.acquire(10000);
         }
0 голосов
/ 31 мая 2012

Лучшее решение здесь: https://stackoverflow.com/a/2134602/1316372

@Override
protected void onCreate(Bundle icicle) {
    super.onCreate(icicle);

    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
...