转载地址: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地址和蓝牙的名称了。

Android蓝牙开发之一:打开、关闭蓝牙相关推荐

  1. Android压力测试不停开启关闭蓝牙报错

    问题分析 报错log信息如下 09-28 13:06:08.697706 30214 30214 E AndroidRuntime: FATAL EXCEPTION: main 09-28 13:06 ...

  2. Android蓝牙开发(一)蓝牙模块及核心API

    本文主要介绍Android蓝牙开发中基础知识:蓝牙模块及核心API. 关于蓝牙的连接及通讯功能实现,欢迎查阅下一篇文章:Android蓝牙开发(二)蓝牙消息传输实现. 蓝牙模块 从蓝牙4.0开始包含两 ...

  3. 【Bluetooth蓝牙开发】一、蓝牙开发入门

    一.蓝牙开发入门 文章目录 一.蓝牙开发入门 1.蓝牙概念 2.蓝牙发展历程 3.蓝牙技术概述 3.1 Basic Rate(BR) 3.2 Low Energy(LE) 4.常见蓝牙架构 4.1 S ...

  4. 【Android】蓝牙开发——BLE(低功耗蓝牙)(附完整Demo)

    目录 目录 前言 一.相关概念介绍 二.实战开发 三.项目演示 四.Demo案例源码地址 五.更新记录 1.2020/12/29 :修改 setupService()中错误 2.2021/05/14 ...

  5. Android 蓝牙开发(二) --手机与蓝牙音箱配对,并播放音频

    Android 蓝牙开发(一) – 传统蓝牙聊天室 Android 蓝牙开发(三) – 低功耗蓝牙开发 项目工程BluetoothDemo 上一章中,我们已经学习了传统蓝牙的开发,这一章,我们来学习如 ...

  6. 【Wifi】adb命令打开/关闭蓝牙、NFC(bluetooth)开关

    谷歌源生代码中,第一次开机BT默认打开. 打开和关闭蓝牙BT adb root adb shell svc bluetooth enable adb shell svc bluetooth disab ...

  7. Android蓝牙开发前序知识-经典蓝牙低功耗蓝牙区别

    最近从网上搜了(抄了)一些经典蓝牙和低功耗蓝牙的区别.关于蓝牙的大概了解,前文已经描述过了. Android中的蓝牙 说到Android中的蓝牙,大家听到的可能有蓝牙1.0.蓝牙2.0.蓝牙3.0.蓝 ...

  8. 【Bluetooth|蓝牙开发】二、蓝牙开发入门

    个人主页:董哥聊技术 我是董哥,嵌入式领域新星创作者 创作理念:专注分享高质量嵌入式文章,让大家读有所得! [所有文章汇总] 1.蓝牙基础概念 蓝牙,是一种利用低功率无线电,支持设备短距离通信的无线电 ...

  9. nimble 蓝牙开发一:BLE 蓝牙 Host 规范概述

    目录 nimble 蓝牙开发一:概述 一.BLE 简介 二.BLE 基础知识 蓝牙设备地址 BLE 广播类型 标准广播数据 三.BLE 工作概述 BLE 常见的操作有: BLE 常见的工作流程: 四. ...

  10. ##**iOS蓝牙开发(一)蓝牙相关基础知识**

    蓝牙常见名称和缩写 MFI ======= make for ipad ,iphone, itouch 专们为苹果设备制作的设备 BLE ==== buletouch low energy,蓝牙4.0 ...

最新文章

  1. 常用的第三方模块 Pillow url
  2. python之if经典语句_2. python学习之if条件语句
  3. MySQL查询报错ERROR:No query specified
  4. CF889E-Mod Mod Mod【dp】
  5. 算法提高 数的划分 动态规划 无序
  6. 云计算:大数据时代的系统工程
  7. 实时监控 轻松玩转IT运维
  8. 转 linux shell 数组建立及使用技巧
  9. qlabel显示图片同时鼠标点击画线_怎样将CAJ文档转成JPG图片?
  10. Android控件——HorizontalScrollView使用(一)
  11. 整数规划:分支定界法
  12. 使用图灵机器人api接口开发智能聊天机器人
  13. 安装win7时缺少所需的CDDVD驱动器设备驱动程序
  14. 大学计算机excel高级筛选,excel高级筛选的使用方法(入门 进阶 高级)
  15. 基线、底线、顶线、中线
  16. 计算机win10分区软件,完全不需要第三方工具!教你轻松调整Win10硬盘分区
  17. 鸟枪换炮读源码系列之ArrayList(java11)
  18. 我的世界刷猪人塔java版_我的世界速攻猪人塔详解 史上最牛的经验塔
  19. PowerDesigner 模型生成转化为sql脚本
  20. QQ、YY与webRTC回声消除效果对比分析与展望

热门文章

  1. java 文本转语音开发
  2. 力扣(202.454)补9.18
  3. IDEA如何简单的设置中文
  4. app启动页html模板,APP引导页设计的五种常见表现方式
  5. gethostbyname和struct hostent详解
  6. 利用平台系统运营店铺五大法则
  7. Android音视频全面介绍与代码实践之音效(四)
  8. Windows上安装mysql-8.0.29-winx64
  9. Excel图表—标准正态分布概率分布图(概率密度函数图及累积概率分布图)的绘制
  10. ERP实务:业务流程评述之生产入库