在通知上使用ACTION_SCREEN_ON奇怪的行为

时间:2015-11-19 14:29:51

标签: android broadcastreceiver screen

我有一个广播接收器,如果屏幕打开,会弹出一个活动。

然而,当屏幕打开时,通过通知(主要是通话),活动将尝试被呼叫,但将被锁定屏幕阻止,并且呼叫将被作为通知放置,而不是作为通知的屏幕试着接听电话。

有没有办法让我的广播接收器只识别锁定屏幕是否已打开?

我的广播接收器现在看起来像这样。

public class MyService extends Service {

    BroadcastReceiver bd;
    public MyService() {
    }

    class ScreenReceiver extends BroadcastReceiver {


        @Override
        public void onReceive(Context context, Intent intent) {
            Intent startupIntent = new Intent(context, ScreenJump.class);
            startupIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(startupIntent);
        }
        public ScreenReceiver()
        {

        }
    }

    @Override
    public void onCreate()
    {
        super.onCreate();

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

    }

1 个答案:

答案 0 :(得分:1)

尝试Intent.ACTION_USER_PRESENT

广播操作:设备唤醒后用户在场时发送(例如,当键盘锁定消失时)。 http://developer.android.com/reference/android/content/Intent.html#ACTION_USER_PRESENT