当用户解锁屏幕时,是否有一种意图被触发? 我想让我的应用程序在屏幕打开时调整亮度,但我遇到的问题是,屏幕打开的意图会在锁定屏幕上触发,并且不会调整该屏幕上的显示。
当用户解锁屏幕时,是否有一种意图被触发? 我想让我的应用程序在屏幕打开时调整亮度,但我遇到的问题是,屏幕打开的意图会在锁定屏幕上触发,并且不会调整该屏幕上的显示。
是的,ACTION_USER_PRESENT
在用户解锁后会被广播:
http://developer.android.com/reference/android/content/Intent.html#ACTION_USER_PRESENT
请注意,这是一项受保护的广播,如果用户正在使用类似于 WidgetLocker
或者 NoLock
的锁屏替代品,则可能不会发送 USER_PRESENT
,或者在错误的时间发送。
如果要检测 WidgetLocker
的解锁, 请参考:
http://teslacoilsw.com/widgetlocker/developers
在清单文件中添加接收器
<receiver android:name=".ScreenReceiver">
<intent-filter>
<action android:name="android.intent.action.USER_PRESENT" />
</intent-filter>
</receiver>
public class ScreenReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
System.out.println(intent.getAction());
if (intent.getAction().equals(Intent.ACTION_USER_PRESENT))
{
Intent intent1 = new Intent(context,MainActivity.class);
intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent1);
}
}
我相信它会起作用。
查看KeyguardLock类中的disableKeyguard
方法。