Android 唤醒一个睡眠被锁定的机器人不工作
我通过以下Android 唤醒一个睡眠被锁定的机器人不工作,android,android-layout,android-activity,android-permissions,Android,Android Layout,Android Activity,Android Permissions,我通过以下广播接收器使用报警服务,或启动我的接收活动: public class AlarmReciever extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { try { Intent i = new Intent(); i.setClassName("com.test",
广播接收器使用报警服务
,或启动我的接收活动
:
public class AlarmReciever extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent)
{
try {
Intent i = new Intent();
i.setClassName("com.test", "co.test.OnReceiveActivity");
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK );
i.addFlags(
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED +
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON +
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
);
context.startActivity(i);
} catch (Exception e) {
e.printStackTrace();
}
}
}
当我在没有任何指定的WindowManager.LayoutParams
标志的情况下尝试时(当设备处于唤醒和解锁状态时)-一切正常,这意味着调用了onReceive()
,并成功启动了OnReceiveActivity
。但是,当标志出现时,无论是在设备处于睡眠状态和查看状态时,还是在设备处于唤醒状态和解锁状态时,它都不工作
在清单文件中指定了以下权限:
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="com.android.alarm.permission.SET_ALARM"/>
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
那些不是Intent
标志,不能与Intent
上的addFlags()
一起使用那些不是Intent
标志,不能与Intent
上的addFlags()一起使用那些不是Intent
标志,不能与addFlags()一起使用Intent
上的
这些不是Intent
标志,不能与addFlags()
上的Intent
一起使用,正如@commonware评论的那样,WindowManager。LayoutParams
标志不是意图标志
正确的方法是在OnReceiveActivity
的onCreate()
中使用getWindow()
函数,如下所示:
getWindow().addFlags(
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED +
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD +
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON +
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
);
我以前的做法在我所看到的许多示例中都使用过,这使它非常奇怪。正如@commonware评论的那样,WindowManager.LayoutParams
标志不是意图标志
正确的方法是在OnReceiveActivity
的onCreate()
中使用getWindow()
函数,如下所示:
getWindow().addFlags(
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED +
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD +
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON +
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
);
我以前的做法在我所看到的许多示例中都使用过,这使它非常奇怪。正如@commonware评论的那样,WindowManager.LayoutParams
标志不是意图标志
正确的方法是在OnReceiveActivity
的onCreate()
中使用getWindow()
函数,如下所示:
getWindow().addFlags(
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED +
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD +
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON +
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
);
我以前的做法在我所看到的许多示例中都使用过,这使它非常奇怪。正如@commonware评论的那样,WindowManager.LayoutParams
标志不是意图标志
正确的方法是在OnReceiveActivity
的onCreate()
中使用getWindow()
函数,如下所示:
getWindow().addFlags(
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED +
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD +
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON +
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
);
我以前的做法在我见过的许多例子中都有使用,这让我觉得很奇怪。这似乎对盖伊有用。。在任何情况下,我如何添加它们@commonsware@nobatlinux:在正在启动的活动中,将这些标志传递给getWindow()。addFlags()
。是的,刚刚收到:)为未来的搜索者添加了一个答案。这似乎对guy有效。。在任何情况下,我如何添加它们@commonsware@nobatlinux:在正在启动的活动中,将这些标志传递给getWindow()。addFlags()
。是的,刚刚收到:)为未来的搜索者添加了一个答案。这似乎对guy有效。。在任何情况下,我如何添加它们@commonsware@nobatlinux:在正在启动的活动中,将这些标志传递给getWindow()。addFlags()
。是的,刚刚收到:)为未来的搜索者添加了一个答案。这似乎对guy有效。。在任何情况下,我如何添加它们@commonsware@nobatlinux:在正在启动的活动中,将这些标志传递给getWindow().addFlags()
.yep刚刚得到:)为未来的搜索者添加了一个答案。@notbatlinux,而不是写新的答案。你应该尝试编辑从中获得解决方案提示的答案并接受该答案。@notbatlinux,而不是写新的答案,你应该尝试编辑从中获得解决方案提示并接受该答案。@notbatlinux,而不是写新的答案答案。@notbatlinux,而不是写新答案。您应该尝试编辑从中获得解决方案提示的答案并接受该答案。@notbatlinux,而不是写新答案,您应该尝试编辑从中获得解决方案提示的答案并接受该答案。