Android 手动按power键上锁,没有锁屏提示音,无法恢复【单机必现】
測试步骤
【測试版本号】T0606
【模块版本号】
NAVI锁屏:5.0.0.ck
【測试步骤】
1、手动按power键上锁,
【測试结果】
没有锁屏提示音,无法恢复【单机必现】
【预期结果】
有提示音
【发生次数】
单机必现
从log能够找到
4321 05-25 16:58:23.779 886 32501 W SoundPool: sample 1 not READY
7641 05-25 16:58:33.879 886 32563 W SoundPool: sample 1 not READY
10835 05-25 16:58:42.550 886 32619 W SoundPool: sample 1 not READY
14300 05-25 16:58:53.021 886 32679 W SoundPool: sample 1 not READY
17733 05-25 16:59:02.343 886 32737 W SoundPool: sample 1 not READY
21173 05-25 16:59:12.912 886 332 W SoundPool: sample 1 not READY
24266 05-25 16:59:19.413 886 397 W SoundPool: sample 1 not READY
27374 05-25 16:59:25.650 886 456 W SoundPool: sample 1 not READY
30833 05-25 16:59:32.635 886 557 W SoundPool: sample 1 not READY
34121 05-25 16:59:41.375 886 616 W SoundPool: sample 1 not READY
37447 05-25 16:59:49.593 886 787 W SoundPool: sample 1 not READY
40340 05-25 16:59:58.792 886 888 W SoundPool: sample 1 not READY
43666 05-25 17:00:05.802 886 1015 W SoundPool: sample 1 not READY
播放失败的原因
解决方式:
改动文件:frameworks/av/media/libmedia/SoundPool.cpp
int SoundPool::play(int sampleID, float leftVolume, float rightVolume,
int priority, int loop, float rate)
{
ALOGV("play sampleID=%d, leftVolume=%f, rightVolume=%f, priority=%d, loop=%d, rate=%f",
sampleID, leftVolume, rightVolume, priority, loop, rate);
sp<Sample> sample;
SoundChannel* channel;
int channelID; Mutex::Autolock lock(&mLock); if (mQuit) {
return 0;
}
// is sample ready? sample = findSample(sampleID);
//2015.06.06 add for begin
if(sample != 0){
int LoopCounter = 15;
while(LoopCounter-- > 0 && (sample->state() != Sample::READY)){
ALOGD("wait for sample ready, sleep 150ms");
usleep(150 * 1000);
}
}
//2015.06.06 add for end
if ((sample == 0) || (sample->state() != Sample::READY)) {
ALOGW(" sample %d not READY", sampleID);
return 0;
} dump(); // allocate a channel
channel = allocateChannel_l(priority); // no channel allocated - return 0
if (!channel) {
ALOGV("No channel allocated");
return 0;
} channelID = ++mNextChannelID; ALOGV("play channel %p state = %d", channel, channel->state());
channel->play(sample, channelID, leftVolume, rightVolume, priority, loop, rate);
return channelID;
}
假设载入线程还没有准备好sample->state() != Sample::READY。等待2.25s再去播放
Android 手动按power键上锁,没有锁屏提示音,无法恢复【单机必现】的更多相关文章
- Android Device Administration 设备管理器——实现一键锁屏
Android Device Administration 设备管理器--实现一键锁屏 最近研究了一下安全这一块的内容,当然,我是比较水的,所以也拿不出什么好知识点,但是有一些冷门的东西我还是可以聊聊 ...
- Android Framework层Power键关机流程(二,关机流程)
二,关机流程 从前一篇博文我们知道,当用户长按Power键时会弹出(关机.重启,飞行模式等选项)对话框,我们点击关机,则会弹出关机确认对话框.那么从选项对话框到关机确认对话框又是一个什么流程呢.下面我 ...
- Android Framework层Power键关机流程(一,Power长按键操作处理)
一:Android处理Power按键长按操作 在Framework层中,Android4.x对Power键(KeyEvent.KEYCODE_POWER)的操作,我们从PhoneWindowManag ...
- Android 手动调用 返回键
有人想通过下面代码来实现手动调用返回键,很可惜会出现空指针异常. this.onKeyDown(KeyEvent.KEYCODE_BACK, null); 我们可以通过调用 onBackPressed ...
- Android 7.0 以上保留数据去除锁屏密码的方法
在很多情况下,由于我们的疏忽,导致忘记了锁屏密码.也没有开启 USB 调试,内置存储中还有要保留的数据.我们需要在不清除数据的情况下删除锁屏密码.接下来我们就介绍该如何做. 注意事项 首先要注意,这个 ...
- 【Android N 7.1.1】 处于锁屏界面时可以转屏
frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowManager.ja ...
- 手动ubuntu 18.04修改登录锁屏界面效果(含登录背景修改)flat-remix
前言 在ubuntu 18.04,可以通过修改/etc/alternatives/gdm3.css来进行修改 本来想直接使用flat-remix主题,但是只有这个登录界面没有达到作者演示的效果,所以手 ...
- 【Mac使用系列】Mac锁屏及快捷键
mac锁屏办法,我有所尝试,可用系统自带锁屏快捷键:Ctrl + Command + Q或者参考方法2,直接设置TouchBar. 这两种办法,亲测可用.我直接设置了TouchBar,锁屏解锁离得很近 ...
- Android 触摸提示音【转】
本文转载自:http://blog.csdn.net/Jin_HeZai/article/details/46791567 近期任务,涉及Android触摸提示音. 首先,定位源码目标.很显然的,在原 ...
随机推荐
- NET生成缩略图
1.添加一个html <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <hea ...
- Request常用方法(转)
原文地址:http://www.lihuai.net/program/python/1617.html Python Requests库:HTTP for Humans 时间: 2014/12/30 ...
- 远程连接mysql root账号报错:2003-can't connect to MYSQL serve(转)
远程连接mysql root账号报错:2003-can't connect to MYSQL serve 1.远程连接Linux系统,登录数据库:mysql -uroot -p(密码) 2.修改roo ...
- 文件哈希审计工具md5deep/hashdeep
文件哈希审计工具md5deep/hashdeep 在数据取证中,通常需要验证文件的哈希值,以判断文件是否已知好文件,或者文件是否被修改过.Kali Linux提供专用工具hashdeep.该工具的 ...
- with上下文管理器
术语 要使用 with 语句,首先要明白上下文管理器这一概念.有了上下文管理器,with 语句才能工作. 下面是一组与上下文管理器和with 语句有关的概念. 上下文管理协议(Context Mana ...
- 【BZOJ 2337】 2337: [HNOI2011]XOR和路径(概率DP、高斯消元)
2337: [HNOI2011]XOR和路径 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1170 Solved: 683 Description ...
- codevs 1365 浴火银河星际跳跃
1365 浴火银河星际跳跃 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 小 K 又在玩浴火银河了...不过这次他的目的不是跑运输 ...
- POJ 2117 Electricity 双联通分量 割点
http://poj.org/problem?id=2117 这个妹妹我竟然到现在才见过,我真是太菜了~~~ 求去掉一个点后图中最多有多少个连通块.(原图可以本身就有多个连通块) 首先设点i去掉后它的 ...
- 【洛谷】3469:[POI2008]BLO-Blockade【割点统计size】
P3469 [POI2008]BLO-Blockade 题意翻译 在Byteotia有n个城镇. 一些城镇之间由无向边连接. 在城镇外没有十字路口,尽管可能有桥,隧道或者高架公路(反正不考虑这些).每 ...
- Codeforces Round #295 (Div. 2)B - Two Buttons BFS
B. Two Buttons time limit per test 2 seconds memory limit per test 256 megabytes input standard inpu ...