Android的广播接收器没有收到ACTION_SCREEN_ON [英] Android broadcast receiver doesn't receive ACTION_SCREEN_ON

查看:2870
本文介绍了Android的广播接收器没有收到ACTION_SCREEN_ON的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图注册接收我用下面的code服务:

I tried to register the receiver in my service with the following code:

IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
ScreenReceiver SR = new ScreenReceiver();
registerReceiver(SR, filter);

这是我的广播接收器:

and this is my broadcast receiver:

public class ScreenReceiver extends BroadcastReceiver { 
    @Override
    public void onReceive(Context context, Intent intent) {
        System.out.println("RECEIVED");
    }
}

我甚至宣称它在清单中,但没有任何过滤器:

I have even declared it in the manifest but without any filters:

<receiver android:name=".ScreenReceiver" android:enabled="true" />

不过,无论我做什么,我不能似乎可以当我打开我的屏幕上获得的意图。

But whatever I do, I can't seem to be able to receive the intent when I turn my screen on.

这是意图在安卓ICS或JB禁用还是我失去了一些东西?

Is this intent disabled in android ICS or JB or am i missing something?

任何帮助将是AP preciated!

Any help would be appreciated!

推荐答案

这是在Android 4.0.4为我工作。

It's work for me on Android 4.0.4

BroadcastReceiver receiver = new BroadcastReceiver() {

    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent == null)
            return;
        //do something you need when broadcast received

    }
};
IntentFilter filter = new IntentFilter()
filter.addAction(Intent.ACTION_SCREEN_ON);
filter.addAction(Intent.ACTION_SCREEN_OFF);

context.registerReceiver(receiver, filter);

至于寄存器接收用行动Intent.ACTION_SCREEN_ON和Intent.ACTION_SCREEN_OFF中的Manifest.xml它没有帮助,因为Android的code在<一个href="http://grep$c$c.com/file/repository.grep$c$c.com/java/ext/com.google.android/android/2.3.7_r1/com/android/server/PowerManagerService.java#PowerManagerService">PowerManagerService.java以下内容:

...
mScreenOnIntent = new Intent(Intent.ACTION_SCREEN_ON);
mScreenOnIntent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY);
mScreenOffIntent = new Intent(Intent.ACTION_SCREEN_OFF);
mScreenOffIntent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY); 
...

这篇关于Android的广播接收器没有收到ACTION_SCREEN_ON的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆