说明:本人因需要做一个APP,通过蓝牙与单片机进行通信,但所参阅的教程不够具体,版本也很乱,用了很长时间才搞定,现将经验分享出来,给大家提供参考

开发环境 Android 5.0 (最低)
IDE Android Studio2.3
蓝牙模块 JDY-08/JDY-10

android是从android4.3版本才开始支持BLE的,到android5.0以后谷歌把扫描单独做成一个对象了(BluetoothLeScanner),本教程只介绍Android5.0部分

  • 一个低功耗蓝牙(ble)可以包括多个Profile
  • 一个Profile中有多个Service(每个Service对应一个UUID)
  • 一个Service中有多个Characteristic(每个Characteristic对应一个UUID)
  • 一个Characteristic中包括一个value和零个或一个或多个Descriper(每个Descriper对应一个UUID)
  • 通过UUID可直接找到对应的Service(服务) /Characteristic(特征)/Descriper(描述符)
  • 例如 假设有一个智能手表 他的BLE具有很多Service,其中一个是心跳监测服务,一个服务有很多Descriper,其中有一个Descriper是心跳速率,他有一个value(我们假设他为速度值),还有很多Descriper(时间或者其他什么的),我们的串口通信只需要设置和读取Characteristic的Value值就好了。


建立一个空Activity,添加botten listView

一、添加权限
在mainifests->Androidmainifest.xml中加入以下代码

    <uses-permission android:name="android.permission.BLUETOOTH"/>    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>    <uses-feature android:name="android.bluetooth_le" android:required="true"/>    <uses-permission-sdk-23 android:name="android.permission.ACCESS_COARSE_LOCATION"/>

二、开启蓝牙

//声明变量    private BluetoothManager bluetoothManager;         private BluetoothAdapter bluetoothAdapter;
//获取buletoothAdapter并打开蓝牙        mBluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);        mBluetoothAdapter = mBluetoothManager.getAdapter();        if (!mBluetoothAdapter.isEnabled()) {            startActivityForResult(new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE), 0);  // 弹对话框的形式提示用户开启蓝牙    }

更多相关文章

  1. Android(安卓)修改权限
  2. Android之Camera的简单实例
  3. Android判断手机中的应用是否具有某些权限(例如小米手机中是否具
  4. Android(安卓)Bluetooth 蓝牙开发资料大全【新】
  5. android6.0下载路径设置
  6. 可视化操作Android的SQLite数据库
  7. Cocos2d-x学习之创建Android工程和编译
  8. 手机管理应用研究【2】—— 安装卸载篇
  9. android 写入文件到SD卡中去

随机推荐

  1. Android(安卓)多媒体开发相关技巧
  2. Android开发——Android(安卓)Studio的ND
  3. android Google Map获取地理位置信息的方
  4. Android(安卓)frame by frame animation
  5. onInterceptTouchEvent和onTouchEvent调
  6. Activity页面状态保存 持久化
  7. react-native Android打包APK
  8. android 设置控件的颜色,字体
  9. 使用 gradle 在编译时动态设置 Android(
  10. win7 cmd终端连接android手机运行adb she