android蓝牙耳机getprofileproxy返回null

时间:2013-03-17 18:20:56

标签: android bluetooth headset

我正在尝试使用android开发者页面作为参考,将蓝牙耳机连接到我的Android设备。 http://developer.android.com/guide/topics/connectivity/bluetooth.html

我的问题是当我尝试调用getProfileProxy(context,mProfileListener,BluetoothProfile.HEADSET)方法时,我不确定要为上下文传递什么?我从这里的问题中找到了这个错误: can not connect to bluetooth headset in android

我对此非常陌生,所以如果这是一个愚蠢的问题,我会提前道歉。我花了很多时间来研究这个,但我找到的每个示例和文档都传递了一个上下文变量,所以我不确定我哪里出错了。我的代码,或多或少是Android文档的副本是:

//建立与代理的连接。     boolean mProfileProxy = mBluetoothAdapter.getProfileProxy(context,mProfileListener,BluetoothProfile.HEADSET);     Log.d(TAGP,“获取适配器成功:”+ mProfileProxy);     Log.d(TAGP,“上下文:”+上下文);

BluetoothProfile.ServiceListener mProfileListener = new BluetoothProfile.ServiceListener() {
    public void onServiceConnected(int profile, BluetoothProfile proxy) {
        if (profile == BluetoothProfile.HEADSET) {
            mBluetoothHeadset = (BluetoothHeadset) proxy;
            Log.d(TAGP,"BLuetooth Headset: "+mBluetoothHeadset);
            Log.d(TAGP,"Proxy: "+proxy);
        }
    }
    public void onServiceDisconnected(int profile) {
        if (profile == BluetoothProfile.HEADSET) {
            mBluetoothHeadset = null;
        }
    }
};

1 个答案:

答案 0 :(得分:1)

上下文可以是活动服务上下文。因此,如果上述代码位于扩展活动服务的类中,则可以传递
您可以在Using the Android RecognizerIntent with a bluetooth headset

上使用我的答案