android编程连接蓝牙BLE音箱,onServiceConnected()方法得不到执行,请问什么原因?

我在写一个小程序,效果是点击listView里的一项(列表是手机配对的蓝牙设备表),程序把被点击的(如蓝牙音箱)设备连接起来。
其中出现问题的代码段如下:
private void getBluetoothA2dp(){
Log.d("anil","getBluetoothA2dp()开始执行。");

mBluetoothAdapter.getProfileProxy(this, new BluetoothProfile.ServiceListener() {
@Override
public void onServiceConnected(int profile, BluetoothProfile proxy) {
Log.d("anil","onServiceConnected(){}开始执行。");
//调试中,这句就执行不到了,是不是因为隐式调用INTENT的原因?又发现connect()也执行了,但mBluetoothA2dp没有赋值。
//应该是onServiceConnected,服务没有被绑定,为什么?
if (profile == BluetoothProfile.A2DP) {
//activity连接service成功,获得A2DP
mBluetoothA2dp = (BluetoothA2dp) proxy;
Log.d("anil", "getBluetoothA2dp()获得A2DP。");
}
}
@Override
public void onServiceDisconnected(int profile) {
}
},BluetoothProfile.A2DP);
if (mBluetoothA2dp==null) Log.d("anil", "getBluetoothA2dp: 没获得mBluetoothA2dp");
}

这段代码是网上很多例子实现连接蓝牙设备的基础代码,我没有做任何不合适的改动。但运行后,根据我log出来的信息看,onServiceConneted()方法一直得不到执行,
也就是说得不到BluetoothA2dp的句柄。
有没有哪位熟悉蓝牙开发的老师能告诉我,我的代码里出了什么问题?很焦急,非常感谢!
2017-01-03 22:08 添加评论 分享
已邀请:

要回复问题请先登录注册

退出全屏模式 全屏模式 回复