<application>
<receiver android:name=".MyBroadcastReceiver" android:enabled="true">
<intent-filter>
<action android:name="android.intent.action.ACTION_SCREEN_ON"></action>
<action android:name="android.intent.action.ACTION_SCREEN_OFF"></action>
</intent-filter>
</receiver>
...
</application>
Run Code Online (Sandbox Code Playgroud)
MyBroadcastReceiver设置只是为了向日志吐出foo.什么也没做.有什么建议吗?我是否需要分配任何权限来捕获意图?
我试图了解设备解锁时启动的意图.
例如:说我的活动正在运行,我按下电源按钮(关闭屏幕,锁定手机).INTENT.ACTION_SCREEN_OFF已启动.活动暂停,屏幕变为空白.
现在,当我再次按下电源按钮(INTENT.SCREEN_ON启动)时,将调用活动的onResume方法.但该设备尚未解锁.
设备解锁后会发生什么?简而言之,意图的行动和类别是什么?
对于我的应用程序,我需要知道屏幕已被锁定.如何检查这是有问题的.我使用了以下标志:
if(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON != 0){
// some code
}else if((WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED)!= 0){
// some code
}
Run Code Online (Sandbox Code Playgroud)
但这总是执行if和else部分...我必须使用哪个标志来检查屏幕是否被锁定?
这是我的情景.我有一个正在播放背景声音的应用.使用BroadcastReceiver我可以告诉显示器何时关闭,然后杀死声音.我还可以判断屏幕是否重新打开.但是,如果设备处于锁定状态,我不希望音频启动.因此,我等待ACTION_USER_PRESENT意图发出信号.这一切都有效,但如果用户在关闭屏幕后快速重新打开屏幕,则无法获得锁定屏幕或ACTION_USER_PRESENT消息.那么,有没有办法告诉,当屏幕重新打开时,设备是否锁定,我想这也意味着睡觉与否?
我有一个 Android 服务,我希望在设备锁定时执行操作。
我想澄清一下:
我添加这些要点是因为我发现无数人提出同样的问题并得到其中之一的答复。我很高兴他们这样做了,因为答案是有用的和/或有教育意义的,但它们不是我现在正在寻找的。