通话时Psensor有时不亮屏的问
来源:互联网 发布:身份证分期借款软件 编辑:程序博客网 时间:2024/06/03 16:00
1.当出现亮不起的时候,我们的传感器已经没有在工作(LED已经没在亮了)。
2.从底层的log信息如下可以看到这是因为有系统调用过来关闭我们的设备,而非是我们的设备出现异常所致!
解决此问题:
已经在原来你们在用的驱动加入了wake lock机制,也可以升级机器做测试,已经测试1个多小时没发现问题。加入的原因如下:
3.从系统服务log对比差异处(下图有背色部分)
没有问题时的log:
出现问题时的log:
从上层代码 跟踪可以看到
这个区别是PowerManagerServer.java的
if (!updateWakefulnessLocked(dirtyPhase1))//条件不成立,造成此处的循环无法退出所致!
进入
privatebooleanupdateWakefulnessLocked(intdirty){
booleanchanged =false;
if((dirty & (DIRTY_WAKE_LOCKS | DIRTY_USER_ACTIVITY | DIRTY_BOOT_COMPLETED
| DIRTY_WAKEFULNESS |DIRTY_STAY_ON | DIRTY_PROXIMITY_POSITIVE
| DIRTY_DOCK_STATE | DIRTY_BOOT_IPO| DIRTY_SD_STATE)) !=0) {
if(mWakefulness == WAKEFULNESS_AWAKE &&isItBedTimeYetLocked()) {
if(DEBUG_SPEW){
Slog.d(TAG,"updateWakefulnessLocked: Bedtime...");//对应log,当能亮起时是没有此打印,说明没进入,而亮不起来时是有此打印的说明进入!
}
finallong time = SystemClock.uptimeMillis();
if (shouldNapAtBedTimeLocked()){
changed = napNoUpdateLocked(time);
}else{
changed = goToSleepNoUpdateLocked(time,
PowerManager.GO_TO_SLEEP_REASON_TIMEOUT);//打印 PowerManagerService: Going to sleep due to screen timeout...
}
}
}
returnchanged;
}
从此接口可以看到 isItBedTimeYetLocked()接口为TRUE时会亮不起来!展开此接口:
可以看到
isBeingKeptAwakeLocked()为false时会造成上面为TRUE,展开
阅读此接口的说明,可以看到此接口会在系统没有wake lock时会返回FALSE。
至于系统为什么没有wake lock,无法知悉!所以在驱动上加入此机制。
- 通话时Psensor有时不亮屏的问
- Phone 通话过程中 PSensor 工作流程
- Java中的IO(面试有时会问java io的问题)
- android传感器Gsensor和Psensor的使用举例
- iOS 通话时屏幕变暗的实现
- 解决aspx页面弹出对话框时,有时正常,有时出现乱码,有时弹出又马上关闭的问题
- 每部网络电话的通话次数以及每部网络电话的总通话时长。
- 解决“闹钟在通话时不弹出,结束通话后弹出”的问题
- 手机通话的状态
- 有时用到的批处理文件
- 获取通话时长
- 通话
- 通话
- android通话时如何显示自己写的界面
- sqlserver呼叫中心保留通话时长最长的记录
- 解决QTP录制时,有时不能产生脚本的问题
- 有时的有时就要无聊的发发呆
- 通话涉及类的分析
- 折腾了好久 ORA-00904: : 无效的标识符
- 发现一个激动人心的网站 Hibernate Spatial
- __attribute__ ((packed)) 的作用
- 求助: 一个软件注册片段?
- ARCGIS 批量添加投影信息 ERDAS 批量裁剪影像
- 通话时Psensor有时不亮屏的问
- Oracle导入excel数据方法汇总
- 类Vector、类JTable及类AbstractTableModel简介
- hibernate 3.3.1 新特性
- 航空遥感数据后处理流程
- 救助:OpenSwing Framework
- 分享 HQL 查询日期 Oracle
- JList 点击打开对应的视频
- 解决:hibernate 实现空间数据库oracle spatial