ACTION_USER_PRESENT в манифесте с BroadcastReceiver - PullRequest
8 голосов
/ 21 октября 2011

Похоже, что существуют разные мнения о том, можно ли отследить разблокировку экрана ACTION_USER_PRESENT через манифест.

Эта тема подразумевает, что это невозможно сделать:

Приемник Android Broadcast не работает

Эта тема подразумевает, что да, это может быть сделано:

Приемник вещания для ACTION_USER_PRESENT, ACTION_SCREEN_ON, ACTION_BOOT_COMPLETED

Я не могу заставить событие работать с эмулятором 2.3.3 или 3.2.

Кто-нибудь еще имел недавний опыт с этим? А, может быть, пример кода для обмена?

1 Ответ

10 голосов
/ 18 декабря 2011

Используйте получатель:

public class Receive extends BroadcastReceiver {

if (intent.getAction() != null) {
            if
                    ( intent.getAction().equals(Intent.ACTION_USER_PRESENT)) {
Intent s = new Intent(context, MainActivity.class);
                    s.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

                    context.startActivity(s);
}}

И в вашем манифесте:

    <receiver
        android:name=".Receive"
        android:enabled="true"
        android:exported="false">
        <intent-filter>
            <action android:name="android.intent.action.USER_PRESENT"/>
        </intent-filter>
    </receiver>
...