安卓获取蓝牙状态

笔者最近一直在做蓝牙状态获取方面的事情,总结出一套获取蓝牙状态的代码,分享如下:

private BluetoothAdapter    ba    ;           		  //蓝牙适配器
ba = BluetoothAdapter.getDefaultAdapter(); 

//蓝牙适配器是否存在,即是否发生了错误
if (ba == null){
   isBlueCon = -1;     //error
}
else if(ba.isEnabled()){
   int a2dp = ba.getProfileConnectionState(BluetoothProfile.A2DP);				//可操控蓝牙设备,如带播放暂停功能的蓝牙耳机
   int headset = ba.getProfileConnectionState(BluetoothProfile.HEADSET);		//蓝牙头戴式耳机,支持语音输入输出
   int health = ba.getProfileConnectionState(BluetoothProfile.HEALTH);			//蓝牙穿戴式设备

   //查看是否蓝牙是否连接到三种设备的一种,以此来判断是否处于连接状态还是打开并没有连接的状态
   int flag = -1;
   if (a2dp == BluetoothProfile.STATE_CONNECTED) {
      flag = a2dp;
   } else if (headset == BluetoothProfile.STATE_CONNECTED) {
      flag = headset;
   } else if (health == BluetoothProfile.STATE_CONNECTED) {
      flag = health;
   }
   //说明连接上了三种设备的一种
   if (flag != -1){
      isBlueCon = 1;			//discontinued
   }
   else if (flag == -1){
      NetworkInfo netInfo = cm.getNetworkInfo(ConnectivityManager.TYPE_BLUETOOTH);

      if (netInfo == null) {
         isBlueCon = 1;		//discontinued
      }
      else {
         State blt  = netInfo.getState();
         isBlueCon = getDevState(blt);         //系统内部,返回连接与否
      }
   }

}
else {
   isBlueCon = 2;			//shut off
}



public static enum State {
        CONNECTED,
        CONNECTING,
        DISCONNECTED,
        DISCONNECTING,
        SUSPENDED,
        UNKNOWN;

        private State() {
        }
    }



评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值