1

背景 :

开发应用程序来制作安卓手机 A2DP 接收器。

BlueDroid 堆栈支持 A2DP 接收器,但默认禁用。 修改源代码以启用 A2DP。Android 手机被视为 HeadsFree 设备并且可以连接。

问题 :

我听不见声音。

试过:

A2dpSinkStateMachine类负责将 android 作为A2dpSink. 状态之一是Connected,它有方法broadcastAudioState,在音频开始/停止流式传输时调用。(第 579 行

broadcastAudioState发送带有动作的广播BluetoothA2dpSink.ACTION_PLAYING_STATE_CHANGED第 696 行)并写入日志A2DP Playing state....))

注册广播接收器

manifest.xml- 通过文件尝试

<receiver android:name=".PlayingStateChangeBroadcastReceiver">
   <intent-filter>
      <action android:name="android.bluetooth.a2dp.profile.action.PLAYING_STATE_CHANGED" />
   </intent-filter>
</receiver>

- 也动态

Intent intent = 
  registerReceiver(mReceiver, new IntentFilter(BluetoothA2dp.ACTION_PLAYING_STATE_CHANGED));

- 动态许可

  Intent intent = 
       registerReceiver(
             mReceiver, 
             new IntentFilter(BluetoothA2dp.ACTION_PLAYING_STATE_CHANGED), 
            "android.permission.BLUETOOTH", 
             new Handler(Looper.getMainLooper()));

onReceive方法永远不会被调用。

此外:

任何想法,如何解决?

谢谢

4

0 回答 0