2017-02-11 14 views
0

Я пытаюсь перехватить мою кнопку ответа гарнитуры bluetooth напрасно. Я могу получить входящую мелодию звонка в гарнитуру, и как только я отвечу на звонок из своего приложения, я могу услышать на гарнитуре. Но я не могу понять, как перехватить кнопку «Ответ» в моем приложении, чтобы я мог также забрать вызов, используя гарнитуру.Android: перехват кнопки ответа Bluetooth-гарнитуры

Мой телефон с Jelly Bean OS. Я пробовал использовать ресивер с ресивером, а также обычный приемник с IntentFilter ACTION_AUDIO_STATE_CHANGED и снова с ACTION_CALL_BUTTON, но ничего не работает. Пожалуйста, дайте мне знать, как я могу работать. Цените свою помощь много.

ответ

0

Чтобы получить устройство Bluetooth работает сначала нужно добавить разрешения в Manifest файл приложения:

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

который я уверен, вы должны уже сделали.

Теперь для управления Bluetooth-гарнитура, вы можете использовать BlueTooth каналу службы гарнитуры:

В качестве примера фрагмент кода:

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); 
+0

Спасибо большое за ответ. Да, я сделал декларации в манифесте, но не понимаю, как использовать BluetoothHeadset и адаптер. Извините, но я не могу четко понять ваш код, где я могу добавить события для захвата кнопки на гарнитуру? Это какое-то событие, которое предоставляет BluetoothHeadset? Я проверил, но не смог найти, какой метод я должен использовать для захвата событий нажатия кнопок. –