1

У меня есть ручка Selfie, подключенная к моему телефону. Я могу найти идентификатор устройства, используя код ниже:Как обнаружить событие щелчка подключенного периферийного устройства Bluetooth (Selfie stick)?

@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_ACL_CONNECTED); 
     this.registerReceiver(mReceiver, filter); 
} 

    //The BroadcastReceiver that listens for bluetooth broadcasts 
    private final BroadcastReceiver mReceiver = new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context context, Intent intent) { 
      String action = intent.getAction(); 
      device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); 

      if (BluetoothDevice.ACTION_ACL_CONNECTED.equals(action)) { 
       //Device is now connected 
       Toast.makeText(getApplicationContext(), "ACTION_ACL_CONNECTED" + device, Toast.LENGTH_LONG).show(); 
      } 
     } 
    }; 

Мой вопрос, как я могу обнаружить нажатие кнопки/выберите событие этого подключенного периферийного устройства?

Справка в виде фрагмента кода/учебника/комментариев очень заметна. Спасибо !!!

EDIT:

Когда я нажимаю кнопку сеой палочки кнопки Volume + слушать событие

+0

у вас есть решение для этого, если да, пожалуйста, поделитесь им –

+0

@YogeshSeralia, да, я нашел решение. См. Ответ, который я опубликовал. – VicJordan

ответ

1

Я нашел ответ. Это было очень просто. Просто переопределите onKeyDown() метод деятельности.

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    // TODO Auto-generated method stub 
    return super.onKeyDown(keyCode, event); 
} 

Здесь keyCode - это название события возвращено.

+0

Делает ли ваше приложение приложение камеры по умолчанию для съемки изображений или вы внедрили пользовательскую камеру для обработки? Сообщите мне. –

+0

Он использует приложение камеры по умолчанию, но я думаю, что он будет работать в обоих случаях – VicJordan

+0

У меня есть пользовательское приложение для камеры для этого, но можете ли вы посоветовать мне, как он может использовать приложение камеры по умолчанию? –

1

я сделал небольшие изменения в коде. Пожалуйста, смотрите, если его полезным

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    IntentFilter a_filter = new IntentFilter(BluetoothDevice.ACTION_ACL_CONNECTED); 
    this.registerReceiver(mReceiver, a_filter); 
    IntentFilter b_filter = new IntentFilter(Intent.ACTION_CAMERA_BUTTON); 
    **b_filter.setPriority(1000);** 
    this.registerReceiver(mReceiver, b_filter); 
} 

// BroadcastReceiver, который слушает блютуз передач

private final BroadcastReceiver mReceiver = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     String action = intent.getAction(); 
     device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); 

     if (BluetoothDevice.ACTION_ACL_CONNECTED.equals(action)) { 
      //Device is now connected 
      Toast.makeText(getApplicationContext(), "ACTION_ACL_CONNECTED" + device, Toast.LENGTH_LONG).show(); 
     } 

    if (!Intent.ACTION_CAMERA_BUTTON.equals(action)) { 
     return; 
    } 
    KeyEvent event = (KeyEvent)intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT); 
    if (event == null) { 
     return; 
    } 
    int action = event.getAction(); 
    if (action == KeyEvent.ACTION_DOWN) { 
    // do something 
    Toast.makeText(context, "BUTTON PRESSED!", Toast.LENGTH_SHORT).show(); 
    } 
    abortBroadcast(); 
    } 
}; 
+0

Не работает. Показывается только шкала громкости (кнопка + кнопка громкости воспроизводит щелчок с периферийного устройства) – VicJordan

+0

Вы проверили отредактированный ответ? – jstn

+0

Я проверил ваш ответ, но он не работает до сих пор – VicJordan

Смежные вопросы