gpt4 book ai didi

Android startBluetoothSco() 不工作

转载 作者:行者123 更新时间:2023-11-29 01:41:44 34 4
gpt4 key购买 nike

我使用的是运行 android 2.3.6 的 LG 手机 (L38C)。我无法以编程方式从蓝牙耳机获取音频输入。这似乎是一个常见问题,但我的研究并没有得出任何解决方案。我已尝试此处提出的解决方案,但未触发 CO_AUDIO_STATE_CONNECTED 事件。

Using the Android RecognizerIntent with a bluetooth headset

有什么想法吗?

PS:当我调用 start() 函数时,我的耳机 (JABRA BT2046) 已配对并连接到电话音频。

最佳答案

在我的例子中,如果用户想在 Voip 通话期间使用蓝牙耳机,我正在寻找一种在用户单击按钮时连接蓝牙设备的方法。

我在三星 S7 SM-G930F 和 Android 7.0 版本上测试的解决方案是:

public class ExampleActivity extends Activity{

private AudioManager mAudioManager;
private BroadcastReceiver mBroadcastReceiver;

@Override
public void onCreate(@Nullable Bundle savedInstanceState, @Nullable PersistableBundle persistentState)
{
super.onCreate(savedInstanceState, persistentState);
setContentView(R.layout.example_activity);

initActivity();

IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(AudioManager.ACTION_SCO_AUDIO_STATE_UPDATED);
registerReceiver(mBroadcastReceiver, intentFilter);
}

@Override
public void onDestroy()
{
super.onDestroy();
unregisterReceiver(mBroadcastReceiver);
}

private void initActivity()
{
initBroadcasrReceiver();
initAudioManager();
}

private void initBroadcasrReceiver()
{
mBroadcastReceiver = new BroadcastReceiver()
{
@Override
public void onReceive(Context context, Intent intent)
{
if (intent.getAction().equals(AudioManager.ACTION_SCO_AUDIO_STATE_UPDATED))
{
int scoAudioState = intent.getIntExtra(AudioManager.EXTRA_SCO_AUDIO_STATE, -1);
if(scoAudioState == AudioManager.SCO_AUDIO_STATE_CONNECTED)
{
// This method should be called only after SCO is connected!
mAudioManager.setBluetoothScoOn(true);
}
}
}
};
}

private void initAudioManager()
{
mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
resetSco();
mAudioManager.startBluetoothSco();
}

private void resetSco()
{
mAudioManager.setMode(AudioManager.MODE_NORMAL);
mAudioManager.stopBluetoothSco();
mAudioManager.setBluetoothScoOn(false);
mAudioManager.setSpeakerphoneOn(false);
mAudioManager.setWiredHeadsetOn(false);
}}

连接 SCO 后,您将能够听到和说话从您的蓝牙设备。希望对您有所帮助。

关于Android startBluetoothSco() 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24154643/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com