Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android服务使设备处于唤醒状态以接收串行端口命令_Java_Android_Serial Port_Wakelock - Fatal编程技术网

Java Android服务使设备处于唤醒状态以接收串行端口命令

Java Android服务使设备处于唤醒状态以接收串行端口命令,java,android,serial-port,wakelock,Java,Android,Serial Port,Wakelock,我正在用平板电脑(Asus MemoPad ME572C)制造一台汽车电脑。 我有一个arduino通过usb到串行适配器与平板电脑连接。现在我需要能够从待机状态打开屏幕 我尝试的是将其放在活动的oncreate中 getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | WindowManag

我正在用平板电脑(Asus MemoPad ME572C)制造一台汽车电脑。 我有一个arduino通过usb到串行适配器与平板电脑连接。现在我需要能够从待机状态打开屏幕

我尝试的是将其放在活动的oncreate中

getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
    WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
    WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON |
    WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON        
);
这是工作,但如果我离开平板电脑一分钟左右,变成待机状态,我就不能再唤醒它了。 看起来平板电脑已经停止了我的服务,或者只是没有监听串口

我不知道如何调试或解决它。希望你能帮忙


PS:对不起,我的英语不是很好。

请注意,对于您使用的方法(WindowManager.LayoutParams标志),您的活动需要全屏显示

如果这不起作用,试试看 这是一种折旧方法,所以你不想长期使用它

引用@Yar:

要唤醒屏幕,请执行以下操作:

PowerManager pm = (PowerManager) getApplicationContext().getSystemService(Context.POWER_SERVICE);
WakeLock wakeLock = pm.newWakeLock((PowerManager.SCREEN_BRIGHT_WAKE_LOCK |
PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_cause_WAKEUP), “标签”); wakeLock.acquire()

要释放屏幕锁定,请执行以下操作:

KeyguardManager keyguardManager = (KeyguardManager) getApplicationContext().getSystemService(Context.KEYGUARD_SERVICE); 
KeyguardLock keyguardLock = keyguardManager.newKeyguardLock("TAG");
keyguardLock.disableKeyguard();
清单需要包含:

<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />

有关PowerManager的更多详细信息,请参阅API文档:

如果这不起作用,您需要调查服务是否正在关闭。您应该能够通过调用服务上的
startForeground()
来防止这种情况发生。有关说明和示例代码,请参阅