Java Android服务保持设备唤醒以接收串行端口命令

时间:2015-06-23 07:38:18

标签: java android serial-port wakelock

我正在创建一台带平板电脑的汽车电脑(华硕MemoPad ME572C)。 我有一个arduino通过usb到串口适配器与平板电脑连接。现在我需要能够从待机状态开启屏幕。

我尝试的是把它放在活动的创造中

self.sp1_val and self.sp2_val

这是有效的但如果我让平板电脑停留一分钟左右就会变成待机状态,我再也无法将其唤醒了。 看起来平板电脑已停止我的服务或只是不听串口。

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

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

1 个答案:

答案 0 :(得分:0)

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

如果这不起作用,请尝试this answer. 这是一种折旧的方法,所以你不想长期保留它。

引自@Yar:

  

唤醒屏幕:

PowerManager pm = (PowerManager) getApplicationContext().getSystemService(Context.POWER_SERVICE);
WakeLock wakeLock = pm.newWakeLock((PowerManager.SCREEN_BRIGHT_WAKE_LOCK |
     

PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP)   " TAG&#34);       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文档:   http://developer.android.com/reference/android/os/PowerManager.html

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