Android:拦截蓝牙耳机的“接听”按钮

时间:2017-02-11 03:14:49

标签: android android-bluetooth

我一直试图拦截我的蓝牙耳机的答案按钮是徒劳的。我能够在耳机中收到来电铃声,一旦我从我的应用程序接听电话,我就可以听到耳机了。但是,我无法弄清楚如何截取我的应用程序中的“应答”按钮,这样我就可以使用耳机接听电话。

我的手机是Jelly Bean OS。我已经尝试使用注册媒体按钮接收器和一个带有IntentFilter ACTION_AUDIO_STATE_CHANGED的普通接收器,再次使用ACTION_CALL_BUTTON,但似乎没有任何效果。请让我知道如何让这个工作。非常感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

要让蓝牙设备首先运行,您需要在应用程序的清单文件中添加权限:

<manifest ... >
  <uses-permission android:name="android.permission.BLUETOOTH" />
  <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
  ...
</manifest>

我确定,你一定已经完成了。

现在要控制蓝牙耳机,你可以使用蓝牙耳机服务:

示例代码段:

BluetoothHeadset mBluetoothHeadset;

// Get the default adapter
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();

private BluetoothProfile.ServiceListener mProfileListener = new BluetoothProfile.ServiceListener() {
    public void onServiceConnected(int profile, BluetoothProfile proxy) {
        if (profile == BluetoothProfile.HEADSET) {
            mBluetoothHeadset = (BluetoothHeadset) proxy;
        }
    }
    public void onServiceDisconnected(int profile) {
        if (profile == BluetoothProfile.HEADSET) {
            mBluetoothHeadset = null;
        }
    }
};

// Establish connection to the proxy.
mBluetoothAdapter.getProfileProxy(context, mProfileListener, BluetoothProfile.HEADSET);

// ... call functions on mBluetoothHeadset

// Close proxy connection after use.
mBluetoothAdapter.closeProfileProxy(mBluetoothHeadset);