android开发 在代码里面如何取得蓝牙按键的事件响应?

这个蓝牙已经和手机连通了。但是我弄了好久,还是没有取得它的按键响应?

差不多,每一个蓝牙耳机里面都有3个键,2个音量键和一个开关/暂停键。麻烦你有时间看一下我的代码。谢谢。。。

代码使用之前,蓝牙耳机和手机是连通好的。

 public class Bluetooth_CameraActivity extends Activity {
 private BluetoothReceiver bluetoothReceiver;
 private BluetoothAdapter adapter;
 BluetoothDevice bluetoothDevice;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
      
        IntentFilter intentFilter = new IntentFilter(Intent.ACTION_MEDIA_BUTTON);
        bluetoothReceiver=new BluetoothReceiver();
        this.registerReceiver(bluetoothReceiver, intentFilter);
        adapter = BluetoothAdapter.getDefaultAdapter();
  //判断BluetoothAdapter对象是否为空,如果为空,则表明本机没有蓝牙设备
  if(adapter != null)
  {
   System.out.println("本机拥有蓝牙设备");
   //调用isEnabled()方法判断当前蓝牙设备是否可用
   if(!adapter.isEnabled()){
    //如果蓝牙设备不可用的话,创建一个intent对象,该对象用于启动一个Activity,提示用户启动蓝牙适配器
    Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
    startActivity(intent);
   }
   
  }
  else {
   System.out.println("没有蓝牙设备");
  }
    } 
  private class BluetoothReceiver extends BroadcastReceiver
  {
   public void onReceive(Context context, Intent intent) {
    
    if (Intent.ACTION_MEDIA_BUTTON.equals(intent.getAction()))
    {
       KeyEvent key=(KeyEvent)intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
    int keycode=key.getKeyCode();
    if(keycode==KeyEvent.KEYCODE_VOLUME_UP){
     System.out.println("--------------->打开");
    }
    else if (keycode==KeyEvent.KEYCODE_VOLUME_DOWN) {
     System.out.println("--------------->關閉");
     
    }
    else if (keycode==KeyEvent.KEYCODE_HEADSETHOOK){
     System.out.println("--------------->展廳");
    }
    }
   }
  }

創作者介紹
創作者 shadow 的頭像
shadow

資訊園

shadow 發表在 痞客邦 留言(0) 人氣()