android电话接通状态下,关机铃声无法从外放输出

AudioMTKPolicyManager.cpp的startOutput方法中,将在newDevic获取到的后面添加:

if(stream==AudioSystem::BOOT)newDevice|=AUDIO_DEVICE_OUT_SPEAKER;

status_t AudioMTKPolicyManager::startOutput(audio_io_handle_t output,

AudioSystem::stream_type stream,

int session)

{

ALOGD("startOutput() output %d, stream %d, session %d", output, stream, session);

......

if (outputDesc->mRefCount[stream] == 1) {

audio_devices_t newDevice = getNewDevice(output, false /*fromCache*/);

routing_strategy strategy = getStrategy(stream);

bool shouldWait = (strategy == STRATEGY_SONIFICATION) ||

(strategy == STRATEGY_SONIFICATION_RESPECTFUL);

uint32_t waitMs = 0;

bool force = false;

if(stream==AudioSystem::BOOT) newDevice|=AUDIO_DEVICE_OUT_SPEAKER;

for (size_t i = 0; i < mOutputs.size(); i++) {

AudioOutputDescriptor *desc = mOutputs.valueAt(i);

if (desc != outputDesc) {

// force a device change if any other output is managed by the same hw

// module and has a current device selection that differs from selected device.

// In this case, the audio HAL must receive the new device selection so that it can

// change the device currently selected by the other active output.

if (outputDesc->sharesHwModuleWith(desc) &&

desc->device() != newDevice) {

force = true;

}

// wait for audio on other active outputs to be presented when starting

// a notification so that audio focus effect can propagate.

uint32_t latency = desc->latency();

if (shouldWait && desc->isActive(latency * 2) && (waitMs < latency)) {

waitMs = latency;

}

}

}

......

}

return NO_ERROR;

}

时间: 2024-11-05 20:27:38

android电话接通状态下,关机铃声无法从外放输出的相关文章

Android:pressed状态下,改变背景和Text样式

需求:准确控制Text的高度,pressed时候,同时改变背景和text的样式. 用Button的话,不能准确控制text的高度. 用Image+TextView叠加的话,pressed时候,onClick事件会被两者中一个consume,因此text的样式,背景只能改变其中之一,代码中设置也很不方便. 目前比较好的实现: Layout+TextView.监听layout即可. <android.support.percent.PercentRelativeLayout android:id=&qu

Android锁屏状态下弹出activity,如新版qq的锁屏消息提示

在接收消息广播的onReceive里,跳转到你要显示的界面.如: Intent intent = new Intent(arg0,MainActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);         arg0.startActivity(intent); 在该activity的onCreate()方法里: super.onCreate(savedInstanceState); getWindow().addFla

Android锁屏状态下弹出activity

在接收消息广播的onReceive里,跳转到你要显示的界面.如: Intent intent = new Intent(arg0,MainActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); arg0.startActivity(intent); 在该activity的onCreate()方法里: super.onCreate(savedInstanceState); getWindow().addFlags(Windo

android源码环境下用mmm/mm编译模块,输出编译log到文件的方法

1,在android目录下直接用mmm命令编译, log信息保存在android目录下 mmm packages/apps/模块名 -j4 2>&1 | tee build_qchat.log 2,在模块路径下用mm命令编译,log信息保存在模块路径下 mm -j8 2>&1 | tee build_qchat.log

怎样在安卓中实现在锁屏状态下弹出对话框,并可以震动和铃声,就像闹钟似的?

============问题描述============ 我想要在应用弹出对话框,程序在后台运行,当达到条件后弹出对话框并有震动和铃声,但是在锁屏状态下却没反应,有什么办法解决吗? ============解决方案1============ // 解锁 KeyguardManager manager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE); if( manager.inKeyguardRestrictedInputMode()

登录锁定状态下Win7关机技巧总结

登录锁定状态下Win7关机技巧总结 一般在锁定状态都是有个关闭电脑的图标的.但是如果你的系统没有,那么怎么样关机呢,所谓的锁定状态通常是指电脑在登录界面,具体的实现如下,感兴趣的朋友可以参考下 现在大部分的系统,在锁定状态都是有个关闭电脑的图标的.但是如果你的系统没有,那么怎么样关机呢?大部分人用的方法是先登录再关机,所谓的锁定状态通常是指电脑在登录界面. 1.在windows xp和windows 2000系统如果在登录界面没有关闭电脑按钮.那么小编通过是通过更改注册表的设置来搞定的. 2.进

android 控件在不同状态下的内容样式与背景样式

1 控件内容(如字体颜色)在不同状态下有不同的表现色ref:http://developer.android.com/guide/topics/resources/color-list-resource.htmlres/color/radio_state.xml <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.co

Android Activity组件正常以及锁屏状态下的启动流程

前言: Activity是android的四大组件之一,它主要负责管理android应用程序的用户界面. 本文主要从framework的角度去分析activity的启动过程.activity的启动过程根据不同的情况会有一些差别,比如锁屏与非锁屏状态下的区别,activity依附的应用程序进程不存在与已经存在的区别等. 目录: 一.KK4.4从Launcher启动Activity的流程 二.应用内启动子Activity的流程 三.锁屏状态下Activity启动的流程 文章中含有大量的时序图,请直接

android 滑动锁屏状态下如何禁止下拉状态栏

滑动锁屏状态下状态栏可以下拉是google 4.0 默认的设计.如果要禁止此功能,请修改KeyguardViewMediator.java的adjustStatusBarLocked()方法,将  if (isSecure() || !ENABLE_INSECURE_STATUS_BAR_EXPAND) { // showing secure lockscreen; disable expanding. flags |= StatusBarManager.DISABLE_EXPAND; } 修改