安卓获取蓝牙状态

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

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() {
        }
    }
时间: 2024-10-18 22:16:50

安卓获取蓝牙状态的相关文章

Android安卓获取网络状态

首先在AndroidManifest.xml添加权限 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 1,判断是否有网络连接 public boolean isNetworkConnected(Context context) { if (context != null) { ConnectivityManager mConnectivityManager = (Conne

用广播监听安卓设备电量状态

发送通知 这次邮件我们将会讨论怎么获取电量状态在安卓设备上,为了完成这个目标,我们将会使用到广播. What is BroadcastReceiver?A broadcast receiver is an Android component which allows you to register for system or application events. All registered receivers for an event are notified by the Android

React Native之Fetch简单封装、获取网络状态

1.Fetch的使用 fetch的使用非常简单,只需传入请求的url fetch('https://facebook.github.io/react-native/movies.json'); 当然是否请求成功与数据的处理,我们还需处理成功与失败的回调 function getMoviesFromApiAsync() { return fetch('https://facebook.github.io/react-native/movies.json') .then((response) =>

Android 通过广播获取网络状态

Android系统网络连接状态的改变会发一个广播,注册一个广播接收者,实时动态的检测网络状态,及时提醒用户,优化用户体验. 本文仅提供WIFI 状态的检测作为参考,其他网络连接方式请对比WIFI连接作出调整. 首先写一个WifiStateBroadcast类继承BroadcastReceiver,重写onRecevie方法,获取网络连接状态管理器,通过管理器拿到对应的网络信息,得到网络状态,判断网络状态,作出相应的业务逻辑. 1 public class WifiStateBroadCast e

iOS 获取网络状态

在iOS开发者,获取网络状态比较常用 -(NSString *)getNetWorkStates{ UIApplication *app = [UIApplication sharedApplication]; NSArray *children = [[[app valueForKeyPath:@"statusBar"]valueForKeyPath:@"foregroundView"]subviews]; NSString *state = nil; int n

修改安卓串口蓝牙app问题记录

* 在网上下载的安卓的蓝牙串口app都是基于eclipse的,但往as里边导入时都存在问题. 迫不得已最后我使用的办法还是在as下面新建工程,然后把相关文件导入.不过还是遇到了其他的问题. * 某个蓝牙相关的函数报错,提示类似这样“Call requires API level 18 (current min is 8)”,在网上查找到网友提供的解决办法解决: 是的,修改为“minSdkVersion 18”后问题解决. * 还需要增加蓝牙的权限信息,以及项目中的用到的activity的注册信息

android开发获取网络状态,wifi,wap,2g,3g.工具类(一)

android开发获取网络状态整理: 1 package com.gzcivil.utils; 2 3 import android.content.Context; 4 import android.net.ConnectivityManager; 5 import android.net.NetworkInfo; 6 import android.telephony.TelephonyManager; 7 import android.text.TextUtils; 8 9 public c

C# 获取时间差状态

/// <summary> /// 根据时间获取时间状态 /// </summary> /// <param name="dt"></param> /// <returns></returns> public string GetTimeInfo(DateTime dt) { TimeSpan span = DateTime.Now - dt; if (span.TotalDays > 60) { retur

StickyBroadcast在获取电池状态中的妙用

StickyBroadcast在获取电池状态中的妙用 今天在做开发的时候,突然遇到这样的一个问题,当你的设备电量低于15%的时候这个时候设备的闪光灯是无法打开的,但是我们平台的解决方案对这一块没有做出任何的提示,于是直接导致了用户认为他的闪光灯坏掉了,于是老大要求我们解决这个问题. 我们都知道电池的电量信息获取我们是通过广播来实现的. 标准做法如下: private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {