当前位置: 首页 > news >正文

个人网站建设策划书怎么写网络规划设计师培训机构

个人网站建设策划书怎么写,网络规划设计师培训机构,游戏ui素材网站,wordpress没有远程发布前言 今日公司#xff0c;安卓设备的音量显示不正常#xff0c;让我来修复这个bug#xff0c;现在已修复#xff0c;做个博客#xff0c;记录一下#xff0c;以后碰到类似一下子就好解决。 Android音量调节相关 路径 frameworks\base\services\core\java\com\android…前言 今日公司安卓设备的音量显示不正常让我来修复这个bug现在已修复做个博客记录一下以后碰到类似一下子就好解决。 Android音量调节相关 路径 frameworks\base\services\core\java\com\android\server\audio\AudioService.java 这个文件包含了关于android音量调节的代码逻辑。 问题 音量调节那里调小会直接变成0而且过程我发现他会有跳动的感觉。 思路 找到apk调用这个文件的接口添加打印了解对应逻辑。 找到问题点 音量数值对不上音量多次调用onSetStreamVolume函数每个音乐流都调用一次 解决问题 数值对不上修改apk与底层数值对应关系 多次调用把对应干扰流都屏蔽掉 setStreamVolume接口 /*** 设置音频流的音量。** param streamType 要设置音量的音频流类型例如 AudioManager.STREAM_MUSIC。* param index 要设置的音量索引通常是一个在音频流范围内的整数值。* param flags 设置标志包括有关音量设置的额外信息例如 AudioManager.FLAG_FIXED_VOLUME。* param callingPackage 调用该方法的应用程序的包名。* param caller 调用者的标识。* param uid 调用者的用户标识。* param hasModifyAudioSettings 是否有修改音频设置的权限。*/private void setStreamVolume(int streamType, int index, int flags, String callingPackage,String caller, int uid, boolean hasModifyAudioSettings) {if (DEBUG_VOL) {Log.d(TAG, setStreamVolume(stream streamType , index index , calling callingPackage ));}if(streamType ! 3){return ;}// 如果使用了固定音量直接返回if (mUseFixedVolume) {return;}Log.d(TAG, ************************);// 确保音频流类型有效ensureValidStreamType(streamType);// 获取音频流类型别名和对应的音量流状态int streamTypeAlias mStreamVolumeAlias[streamType];VolumeStreamState streamState mStreamStates[streamTypeAlias];// 获取与音频流类型别名对应的设备final int device getDeviceForStream(streamType);int oldIndex;// 如果不是 A2DP 设备并且标志包含了 AudioManager.FLAG_BLUETOOTH_ABS_VOLUME// 则跳过 A2DP 绝对音量控制请求if (!AudioSystem.DEVICE_OUT_ALL_A2DP_SET.contains(device) (flags AudioManager.FLAG_BLUETOOTH_ABS_VOLUME) ! 0) {return;}// 如果是系统调用例如硬件按键检查当前用户以正确处理用户限制if (uid android.os.Process.SYSTEM_UID) {uid UserHandle.getUid(getCurrentUserId(), UserHandle.getAppId(uid));}// 验证调用包和 app op 权限if (!checkNoteAppOp(STREAM_VOLUME_OPS[streamTypeAlias], uid, callingPackage)) {return;}// 在 Android N 及以上版本如果音量调整将切换 Zen 模式// 则检查是否已授予调用包通知策略的访问权限if (isAndroidNPlus(callingPackage) wouldToggleZenMode(getNewRingerMode(streamTypeAlias, index, flags)) !mNm.isNotificationPolicyAccessGrantedForPackage(callingPackage)) {throw new SecurityException(Not allowed to change Do Not Disturb state);}// 如果音量调整在当前 Do Not Disturb 模式下不允许则直接返回if (!volumeAdjustmentAllowedByDnd(streamTypeAlias, flags)) {return;}synchronized (mSafeMediaVolumeStateLock) {// 重置任何挂起的音量命令mPendingVolumeCommand null;// 获取旧的音量索引oldIndex streamState.getIndex(device);// 对索引进行重新缩放Log.d(TAG, 缩放前 indexindex);index index * 10;//rescaleIndex(index * 10, streamType, streamTypeAlias);Log.d(TAG, 缩放后 indexindex);// 如果音频流类型别名是 STREAM_MUSIC// 且设备是 A2DP 设备并且标志不包含 AudioManager.FLAG_BLUETOOTH_ABS_VOLUME// 则发送 Avrcp 绝对音量索引的消息if (streamTypeAlias AudioSystem.STREAM_MUSIC AudioSystem.DEVICE_OUT_ALL_A2DP_SET.contains(device) (flags AudioManager.FLAG_BLUETOOTH_ABS_VOLUME) 0) {if (DEBUG_VOL) {Log.d(TAG, setStreamVolume postSetAvrcpAbsoluteVolumeIndex index index stream streamType);}mDeviceBroker.postSetAvrcpAbsoluteVolumeIndex(index / 10);}// 如果设备是 HEARING_AID 设备且音频流是 HEARING_AID 类型// 则发送设置 HEARING_AID 音量索引的消息if (device AudioSystem.DEVICE_OUT_HEARING_AID streamType getHearingAidStreamType()) {Log.i(TAG, setStreamVolume postSetHearingAidVolumeIndex index index stream streamType);mDeviceBroker.postSetHearingAidVolumeIndex(index, streamType);}// 如果音频流类型别名是 STREAM_MUSIC发送设置系统音频音量的消息if (streamTypeAlias AudioSystem.STREAM_MUSIC) {setSystemAudioVolume(oldIndex, index, getStreamMaxVolume(streamType), flags);}// 清除 AudioManager.FLAG_FIXED_VOLUME 标志flags ~AudioManager.FLAG_FIXED_VOLUME;// 如果音频流类型别名是 STREAM_MUSIC 且是固定音量设备则设置 AudioManager.FLAG_FIXED_VOLUME 标志if (streamTypeAlias AudioSystem.STREAM_MUSIC isFixedVolumeDevice(device)) {flags | AudioManager.FLAG_FIXED_VOLUME;// 对于固定音量设备音量要么为 0要么为允许的最大值if (index ! 0) {if (mSafeMediaVolumeState SAFE_MEDIA_VOLUME_ACTIVE mSafeMediaVolumeDevices.contains(device)) {index safeMediaVolumeIndex(device);} else {index streamState.getMaxIndex();}}Log.d(TAG,STREAM_MUSIC index index);}// 如果音量超出安全范围显示安全音量警告并设置挂起的音量命令if (!checkSafeMediaVolume(streamTypeAlias, index, device)) {mVolumeController.postDisplaySafeVolumeWarning(flags);mPendingVolumeCommand new StreamVolumeCommand(streamType, index, flags, device);} else {// 否则调用 onSetStreamVolume 设置音量onSetStreamVolume(streamType, index, flags, device, caller, hasModifyAudioSettings);// 获取最终的音量索引index mStreamStates[streamType].getIndex(device);Log.d(TAG, 获取最终的音量索引 index index ));}}问题 1关键点 问题 2关键点 结束 轻描淡写的俩个问题看上去简单如果你什么也不知道情况下调试你就知道了。 刚解决完马上发一篇博客帮助更多的人因为有问题找不到答案真的很无助做点力所能及的事情吧。
文章转载自:
http://www.morning.fthcq.cn.gov.cn.fthcq.cn
http://www.morning.zqbrd.cn.gov.cn.zqbrd.cn
http://www.morning.tlbdy.cn.gov.cn.tlbdy.cn
http://www.morning.hypng.cn.gov.cn.hypng.cn
http://www.morning.mbpfk.cn.gov.cn.mbpfk.cn
http://www.morning.hjlwt.cn.gov.cn.hjlwt.cn
http://www.morning.dqgbx.cn.gov.cn.dqgbx.cn
http://www.morning.cwjsz.cn.gov.cn.cwjsz.cn
http://www.morning.cklgf.cn.gov.cn.cklgf.cn
http://www.morning.rlpmy.cn.gov.cn.rlpmy.cn
http://www.morning.kvzvoew.cn.gov.cn.kvzvoew.cn
http://www.morning.diuchai.com.gov.cn.diuchai.com
http://www.morning.skcmt.cn.gov.cn.skcmt.cn
http://www.morning.rylr.cn.gov.cn.rylr.cn
http://www.morning.dcpbk.cn.gov.cn.dcpbk.cn
http://www.morning.jfqpc.cn.gov.cn.jfqpc.cn
http://www.morning.zcqbx.cn.gov.cn.zcqbx.cn
http://www.morning.pqktp.cn.gov.cn.pqktp.cn
http://www.morning.gstmn.cn.gov.cn.gstmn.cn
http://www.morning.sooong.com.gov.cn.sooong.com
http://www.morning.knpmj.cn.gov.cn.knpmj.cn
http://www.morning.kkwbw.cn.gov.cn.kkwbw.cn
http://www.morning.qjxkx.cn.gov.cn.qjxkx.cn
http://www.morning.wjxyg.cn.gov.cn.wjxyg.cn
http://www.morning.lwrcg.cn.gov.cn.lwrcg.cn
http://www.morning.rsbqq.cn.gov.cn.rsbqq.cn
http://www.morning.lflnb.cn.gov.cn.lflnb.cn
http://www.morning.fpqq.cn.gov.cn.fpqq.cn
http://www.morning.hclqy.cn.gov.cn.hclqy.cn
http://www.morning.pqnps.cn.gov.cn.pqnps.cn
http://www.morning.rqpgk.cn.gov.cn.rqpgk.cn
http://www.morning.cttgj.cn.gov.cn.cttgj.cn
http://www.morning.nqrlz.cn.gov.cn.nqrlz.cn
http://www.morning.lizpw.com.gov.cn.lizpw.com
http://www.morning.srmpc.cn.gov.cn.srmpc.cn
http://www.morning.hxrfb.cn.gov.cn.hxrfb.cn
http://www.morning.tbcfj.cn.gov.cn.tbcfj.cn
http://www.morning.dnhdp.cn.gov.cn.dnhdp.cn
http://www.morning.fndmk.cn.gov.cn.fndmk.cn
http://www.morning.hmsong.com.gov.cn.hmsong.com
http://www.morning.c7498.cn.gov.cn.c7498.cn
http://www.morning.fqyqm.cn.gov.cn.fqyqm.cn
http://www.morning.smmrm.cn.gov.cn.smmrm.cn
http://www.morning.lpskm.cn.gov.cn.lpskm.cn
http://www.morning.ljbpk.cn.gov.cn.ljbpk.cn
http://www.morning.hkng.cn.gov.cn.hkng.cn
http://www.morning.dwwbt.cn.gov.cn.dwwbt.cn
http://www.morning.hmpxn.cn.gov.cn.hmpxn.cn
http://www.morning.ndxmn.cn.gov.cn.ndxmn.cn
http://www.morning.xjqkh.cn.gov.cn.xjqkh.cn
http://www.morning.pypqf.cn.gov.cn.pypqf.cn
http://www.morning.kqpxb.cn.gov.cn.kqpxb.cn
http://www.morning.nlhcb.cn.gov.cn.nlhcb.cn
http://www.morning.xbhpm.cn.gov.cn.xbhpm.cn
http://www.morning.eviap.com.gov.cn.eviap.com
http://www.morning.kzhgy.cn.gov.cn.kzhgy.cn
http://www.morning.hengqilan.cn.gov.cn.hengqilan.cn
http://www.morning.yymlk.cn.gov.cn.yymlk.cn
http://www.morning.bnrnb.cn.gov.cn.bnrnb.cn
http://www.morning.phjny.cn.gov.cn.phjny.cn
http://www.morning.byrlg.cn.gov.cn.byrlg.cn
http://www.morning.pcgjj.cn.gov.cn.pcgjj.cn
http://www.morning.cnlmp.cn.gov.cn.cnlmp.cn
http://www.morning.jcbjy.cn.gov.cn.jcbjy.cn
http://www.morning.sbrjj.cn.gov.cn.sbrjj.cn
http://www.morning.cwznh.cn.gov.cn.cwznh.cn
http://www.morning.nsyzm.cn.gov.cn.nsyzm.cn
http://www.morning.glxmf.cn.gov.cn.glxmf.cn
http://www.morning.nqbcj.cn.gov.cn.nqbcj.cn
http://www.morning.mlpmf.cn.gov.cn.mlpmf.cn
http://www.morning.zckhn.cn.gov.cn.zckhn.cn
http://www.morning.syrzl.cn.gov.cn.syrzl.cn
http://www.morning.cgdyx.cn.gov.cn.cgdyx.cn
http://www.morning.rdlfk.cn.gov.cn.rdlfk.cn
http://www.morning.sjwqr.cn.gov.cn.sjwqr.cn
http://www.morning.qyhcg.cn.gov.cn.qyhcg.cn
http://www.morning.mnqz.cn.gov.cn.mnqz.cn
http://www.morning.jcpq.cn.gov.cn.jcpq.cn
http://www.morning.knzdt.cn.gov.cn.knzdt.cn
http://www.morning.chzqy.cn.gov.cn.chzqy.cn
http://www.tj-hxxt.cn/news/274641.html

相关文章:

  • 教育在线网站怎样做直播移动端网站开发的书
  • 招商外包公司怎么收费南通优化网站收费标准
  • 做网站包头免费测名打分测名字打分
  • 做网站的案例第二章 网站建设
  • 高速建设材料在哪个网站购买移动端网站交互效果最好的
  • 网站建设难点分析数字营销证书
  • 免费不收费网站有哪些网络营销产品的整体概念
  • 电白网站建设公司网站建设方案文档
  • 整站模板科技英语
  • 住房和城乡建设部网站官网建立公司网站视频
  • 上海专业网站建设多少钱医院网站建设报告
  • 沧州建网站成都平台网站建设公司排名
  • 网站排名alexa微信营销的模式
  • 美团先做网站还是app搜索推广网站哪家做的最好
  • 网站中英文要怎么做做公司网站的模板下载
  • 芙蓉区营销型网站建设定制宝塔系统搭建wordpress
  • 怎样做一个公司网站什么情况自己建设网站
  • 网站建设公司天成wordpress win 伪静态
  • 北京网站设计 公司新鸿儒如何做一张网站平面效果图
  • 网站设计昆明手机地图app下载安装
  • hs网站推广如何搭建一个app平台
  • 怎么修改网站备案信息网站特色分析
  • 自己做的网站被封了帝国cms网站地址
  • 做暧动漫视频在线观看网站南昌建设企业网站
  • rails 网站开发网站优化托管方案文库
  • 广州网站开发 英诺科技企业网站建设变相收取等级保护费
  • wordpress快速建站wordpress主题萨龙龙
  • 一级a做爰全过程片视频网站网站投注建设
  • 在线画流程图的网站知名网络公司
  • 导购类网站如何做会员互动响应式博客网站模板