一点蓝牙流水账

AudioService.JAVA

setBluetoothScoOn(boolean on)


  AudioSystem.setForceUse(AudioSystem.FOR_RECORD, mForcedUseForComm);


  {"setForceUse",         "(II)I",    (void *)android_media_AudioSystem_setForceUse},

status_t AudioSystem::setForceUse(audio_policy_force_use_t usage, audio_policy_forced_cfg_t config)


void AudioPolicyManagerBase::setForceUse(AudioSystem::force_use usage, AudioSystem::forced_config config)


比较重要的函数

audio_devices_t AudioPolicyManagerBase::getDeviceForInputSource(int inputSource)


-------------------------------

AudioPolicyManager, AudopolicyManagerBase



getDeviceForStrategy

audio_devices_t AudioPolicyManagerBase::getDeviceForStrategy(routing_strategy strategy,
                                                             bool fromCache)




打开SCO的方式

atResponseCodeNative(HeadsetHalConstants.AT_RESPONSE_OK, 0);

 phoneStateChangeNative(callState.mNumActive, callState.mNumHeld,
                callState.mCallState, callState.mNumber, callState.mType)











--------------------------------------

void AudioPolicyManagerBase::checkA2dpSuspend()

{
    if (!mHasA2dp) {
        return;
    }
    audio_io_handle_t a2dpOutput = getA2dpOutput();
    if (a2dpOutput == 0) {
        return;
    }


    // suspend A2DP output if:
    //      (NOT already suspended) &&
    //      ((SCO device is connected &&
    //       (forced usage for communication || for record is SCO))) ||
    //      (phone state is ringing || in call)
    //
    // restore A2DP output if:
    //      (Already suspended) &&
    //      ((SCO device is NOT connected ||
    //       (forced usage NOT for communication && NOT for record is SCO))) &&
    //      (phone state is NOT ringing && NOT in call)
    //
    if (mA2dpSuspended) {
        if (((mScoDeviceAddress == "") ||
             ((mForceUse[AudioSystem::FOR_COMMUNICATION] != AudioSystem::FORCE_BT_SCO) &&
              (mForceUse[AudioSystem::FOR_RECORD] != AudioSystem::FORCE_BT_SCO))) &&
             ((mPhoneState != AudioSystem::MODE_IN_CALL) &&
              (mPhoneState != AudioSystem::MODE_RINGTONE))) {


            mpClientInterface->restoreOutput(a2dpOutput);
            mA2dpSuspended = false;
        }
    } else {
        if (((mScoDeviceAddress != "") &&
             ((mForceUse[AudioSystem::FOR_COMMUNICATION] == AudioSystem::FORCE_BT_SCO) ||
              (mForceUse[AudioSystem::FOR_RECORD] == AudioSystem::FORCE_BT_SCO))) ||
             ((mPhoneState == AudioSystem::MODE_IN_CALL) ||
              (mPhoneState == AudioSystem::MODE_RINGTONE))) {


            mpClientInterface->suspendOutput(a2dpOutput);
            mA2dpSuspended = true;
        }
    }
}







<think>我们正在处理用户的问题:如何让表达更像日常对话,写得更接地气一些?用户意图是希望内容更口语化、贴近日常交流。根据任务要求,我们需要:1.进行网络搜索,使用合适的搜索词。2.整合检索内容,生成详细清晰的回答,组织为多个方法或步骤,每个步骤间换行。3.禁止引用集中在末尾,避免第一人称和步骤词汇(如首先、然后)。4.回答最后添加相关问题部分,格式严格。搜索词建议:如何让写作更口语化,如何让表达接地气,写作口语化技巧,日常对话写作技巧。我们将模拟搜索并整合信息。注意:实际中会调用搜索工具,但这里我们基于知识库和常识生成。常见技巧:-使用短句和简单词汇-加入语气词和感叹词-避免专业术语,用生活化比喻-使用反问句和设问句-适当使用方言或流行语(注意适度)-模仿真实对话的节奏和停顿我们按照多个方法或步骤来组织,每个方法之间换行。注意:避免步骤词汇,所以直接用方法描述。最后,生成相关问题。开始构建答案:</think>### 如何让表达更口语化接地气 **多用短句和日常词汇** 把长句拆成几个短句,像聊天那样说。比如把"鉴于当前市场环境的不确定性"改成"现在市场变化太快"。用"搞定"代替"完成",用"贼好用"代替"非常高效",像朋友推荐东西那样说话。 **加语气词和口头禅** 适当用"呢、呀、啦"这些语气词,比如"这个功能超实用**的**!"自然加入"说实话""你懂的"这类口头禅,让文字带点停顿感,就像面对面聊天。 **少用专业术语打比方** 遇到专业概念就找个生活比喻。比如解释算法别说"时间复杂度",可以说"就像煮饭,米越多煮得越久"。用"小区快递站"比喻云计算,用"菜市场砍价"比喻商业谈判。 **学真实对话的节奏** 写完后大声念出来,卡顿的地方改顺溜。加些口语化提问:"是不是很神奇?"故意留点不完美,比如"这方法可能不是最牛的,但真心好用"。 **看热播剧和短视频学说话** 注意影视剧里人物怎么自然对话,收集抖音评论区热梗。比如用"绝绝子"夸产品,用"踩坑"说失败经历。但别过度玩梗,重点在自然不做作。 **示例对比** 书面化:"该应用程序显著提升了工作效率" 口语化:"用这个工具干活儿,贼省时间!" 书面化:"需要进一步优化用户体验" 口语化:"咱得让用户用着更顺手才行" ```text 改前:本文旨在探讨社交媒体对青少年心理健康产生的潜在影响 改后:今天聊聊刷手机对娃们心理的影响,这事挺值得琢磨 ```
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值