ACTION_SCREEN_ON и ACTION_SCREEN_OFF не работают?

Я пытаюсь выключить Wi-Fi, когда экран ВЫКЛЮЧЕН (заблокирован), и снова включить его, когда экран включен (разблокирован).

Я создал BroadcastReceiver ; поместите в манифест этот код:

<receiver android:name="MyIntentReceiver">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <action android:name="android.intent.action.SCREEN_OFF" />
                <action android:name="android.intent.action.SCREEN_ON" />
                <action android:name="android.intent.action.USER_PRESENT" />
                <category android:name="android.intent.category.HOME" />
                <category android:name="android.intent.category.LAUNCHER" />    
            </intent-filter>
        </receiver>

и это класс MyIntentReceiver :

package org.androidpeople.boot;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

public class MyIntentReceiver extends BroadcastReceiver {
    // Called when boot completes

    public static boolean startup;

    @Override
    public void onReceive(Context context, Intent intent) {
        // Set what activity should launch after boot completes

        System.out.println("Intent Action: " + intent.getAction());

        if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {

            System.out.println("locked : ACTION_SCREEN_OFF");

        } else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {

            System.out.println("not locked : ACTION_SCREEN_ON ");

        } else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {

            System.out.println("User Unlocking it ");

        } 
        else if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
            // this to indicate that program is running
            // automaticlly not manually by user
            startup = true;
            System.out.println("Automatic BOOT at StartUp");

            Intent startupBootIntent = new Intent(context, LaunchActivity.class);
            startupBootIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(startupBootIntent);
        }

    }
}

И результат - оба ACTION_SCREEN_ON и ACTION_SCREEN_OFF никогда не запускались! USER_PRESENT и BOOT_COMPLETED работали нормально, но другой - нет. Я использую эмулятор, а не настоящее устройство - может ли это вызвать проблему?

Любая помощь? Мне нужно включать и выключать экран, чтобы включить / выключить Wi-Fi для экономии заряда батареи.

​​Заранее спасибо

7
задан Nicofisi 29 December 2016 в 15:04
поделиться