当用户解锁屏幕时是否会触发意图?我希望我的应用程序在屏幕打开时调整亮度,但我遇到的问题是在锁定屏幕上触发意图屏幕并且它不会调整该屏幕上的显示。
答案 0 :(得分:10)
是的,在用户解锁后广播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
答案 1 :(得分:7)
在清单文件中添加接收器
<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);
}
}
我相信它会奏效。
答案 2 :(得分:2)
查看KeyguardLock类中的disableKeyguard
方法。