转载地址:http://victorzhong.github.io/2015/07/26/Android%E8%93%9D%E7%89%99%E5%BC%80%E5%8F%91%E4%B9%8B%E4%B8%80%EF%BC%9A%E6%89%93%E5%BC%80%E3%80%81%E5%85%B3%E9%97%AD%E8%93%9D%E7%89%99/
这几天在给14屇创新班的师弟师妹们培训Android开发,这里整理出一份完整的笔记记录一下Android通过蓝牙与单片机通信的详细步骤。本篇是第一篇:实现打开、关闭本机的蓝牙。
BluetoothAdapter
首先要介绍的是BluetoothAdapter这个类,这是本地的蓝牙适配器,也就是你自己手机/平板的蓝牙,常用的方法有:
- getDefaultAdapter: 获取本地的蓝牙适配器
- isEnabled(): 本地蓝牙是否使能
- getAddress(); 获取蓝牙MAC地址
- getName(); 获取蓝牙名字
- enable(); 打开蓝牙(需要ADMIN权限)
- disable(); 关闭蓝牙
我们在代码提示里也能看到:
下面我们来看看具体的使用方法。
在IDE里新建好工程(本猿用的是Android Studio),在MainActivity.java里,先声明一个本地的蓝牙适配器:
private BluetoothAdapter bluetoothAdapter; //本地蓝牙适配器
在onCreate()方法里,我们先要获取系统的蓝牙适配器,并将它赋给我们前面声明的bluetoothAdapter,这样就可以对系统的蓝牙进行操作了。
bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
访问系统的蓝牙需要权限,所以我们要去AndroidManifest.xml文件里添加权限声明(注意android.permission是小写):
回来MainActivity,获取到系统的蓝牙后我们就可以对它进行操作了,但是保全起见还是先判断一下有没有获取到,万一跑这个应用的安卓机没有蓝牙设备呢?
if(bluetoothAdapter == null){
Toast.makeText(this,"本地蓝牙不可用",Toast.LENGTH_SHORT).show();
finish(); //退出应用
}
接下来我们就可以试试上面罗列的方法了。
String Address = bluetoothAdapter.getAddress(); //获取本机蓝牙MAC地址
String Name = bluetoothAdapter.getName(); //获取本机蓝牙名称
// 若蓝牙没打开
if(!bluetoothAdapter.isEnabled()){
bluetoothAdapter.enable(); //打开蓝牙,需要BLUETOOTH_ADMIN权限
}
// 打印信息
Log.i("getAddress() : ", Address);
Log.i("getName() : ", Name);
开始调试,把程序烧进手机里,注意查看logcat,不出意外的话都能看到打印出手机蓝牙的Mac地址和蓝牙的名称了。