ionic蓝牙用法

插件cordova官网cordova-plugin-ble-central

1.开启本机蓝牙

ble.enable(
  function() {
    console.log("Bluetooth is enabled");
  },
  function() {
    console.log("The user did *not* enable Bluetooth");
  }
);

这方法是开启蓝牙功能的方法,在android上会弹出是否开启蓝牙的提示框,确定会开启蓝牙功能,iOS上有提示,但是点击确定也不会打开,好像是iOS的权限不允许,坑,

2.扫描蓝牙

ble.scan([], 10, function (device) {//成功的回调函数
  $scope.devices = [];
  $scope.devices.push(device);
  $scope.$apply(function () {
    $scope.devices.push(device);
  });

  return $scope.devices;
  }, function(){

    //失败的回调函数

  }

);

蓝牙扫描的方法,第二个参数10指的扫描时间,单位是秒,device是扫描的设备

3.连接其他设备蓝牙

$scope.connectFun=function(device){

  ble.connect(device.id, $scope.onConnected, $scope.onError);

}

连接蓝牙的方法,第一个参数是你扫描到的设备的id,后面的是成功和失败的回调

4.读取数据

readCounter = setInterval(function () {
  ble.read(device.id, $scope.serviceUUID, $scope.counterCharacteristic, $scope.onDataReader, $scope.onReadError);
}, 1000);

读取已连接蓝牙的数据,我用了个定时器,1秒读一次,

device.id:蓝牙id,同第3的device.id

$scope.serviceUUID:蓝牙的UUID,具体不懂,每个蓝牙都有,但是这个值需要注意的地方就是它在android和ios上的写法不一样,比如在android上它的值是xxxxfff0-xxxx-xxxx-xxxx-xxxxxxxxxxx,那么它在ios上就是FFF0,这个可以用ionic.Platform.isAndroid()进行平台判断

$scope.counterCharacteristic:蓝牙的特性值,写法跟UUID类似,在android和ios的差异写法也跟UUID一样,刚开始我在android上写好功能后在iOS上连不上蓝牙问题就出在了这里

$scope.onDataReader:成功的回调,可以进行读取数据

$scope.onReadError:失败的回调

5.读取数据扩充

$scope.onDataReader=function(buffer){

  //buffer就是蓝牙读取的数据,但是需要转换才能被引用

  var data = new Uint8Array(buffer);//Uint8Array对象:8 位无符号整数值的类型化数组。内容将初始化为 0。如果无法分配请求数目的字节,则将引发异常。

  //这里可以一步步打印data然后按需要转出所需的数据

  //将值赋值给页面上绑定的变量时,如果变量没有变化,试着用

  $scope.$apply(function(){

    //将计算后的数据给变量赋值,要用$apply涉及到了ng的脏值检查机制,有兴趣可以去搜搜相关资料

  })

}

6.断开蓝牙

ble.disconnect(device.id, function(){
  //do something

}, function(){
  //do something
});

功能相似的话,记得断开后停止定时器

时间: 2024-12-28 00:42:29

ionic蓝牙用法的相关文章

ionic单页面应用中微信分享的问题总结

首先说一下 ionic 是单页面应用,也就是说整个项目就有一个index.html, 那么问题就就来了, 如果我们不同的页面要分享给大家的是不同的链接和图片,应该怎么去做呢? 这就是我们今天要总结的东西. 今天这个问题真是闹得我心烦,有必要总结下来了. 学习重点: 微信分享方法巧妙封装 监听路由事件$rootScope.$on 举一反三 微信分享 关于微信分享,大家都是在熟悉不过了,无非就是调用微信的SDK,授权,给他分享索要的东西的ok.所以对于微信分享似乎没有什么好说的,但是细心的伙伴有木有

2.OC蓝牙功能

一.  最早的蓝牙框架是GameKit,iOS7之前用的比较多,它有只能支持iOS设备间的传输,但是使用步骤简单,我们只需要搞清楚两个类就可以了. GKPeerPickerController:熟称浏览器,调用此控制器的show方法来显示当前的蓝牙热点,一旦发现有另一页在查找蓝牙的用户,之间就能实链接. GKSession:连接会话,主要用于发送和接受传输数据.档两个程序进行连接时,GKPeerPickerController的代理方法会将两者建立的会话(GKSession)对象传递给制定的对象

ionic之自定义 ion-tabs 图标

Ionic框架内置了很多矢量图标,可以应用于 ion-tabs 多标签切换中.用法如下: <ion-tabs class="tabs-positive tabs-icon-only"> <ion-tab title="首页" icon-on="ion-ios7-filing" icon-off="ion-ios7-filing-outline"> <!-- 标签 1 内容 --> </

ionic popover、popu、scroll

Popover $ionicPopover, 参看接着讲解的 ionicPopover 控制器.这个控件和上篇中讲到的ionicModal 内容基本一致.popover是浮动在用户app内容之上的view视图,很方便的用来展示或收集用户信息,主要用于: 展示当前view视图的更多信息选择一个常用的工具或配置展现一个app视图中的动作列表把要显示在popover中的内容放在元素中即可.用法: 12345678910111213141516171819202122232425262728293031

蓝牙Bluez的编程实现

蓝牙的各个协议栈的简介 2 1.1.蓝牙技术 2 1.1.蓝牙协议栈 2 1.2.蓝牙技术的特点 4 1.2.1.蓝牙协议栈体系结构 4 1.2.2.蓝牙协议栈低层模块 5 1.2.3.软件模块 5 1.3.蓝牙的一些Profile 6 2.Bluez和D-Bus 8 2.1.Bluez和D-Bus体系结构 8 2.2.D-Bus介绍 10 2.3.Bluez的安全接口 14 2.4.Bluez适配器接口 19 2.5.Bluez配对 19 2.6.Bluez绑定 20 3.Bluez编程实现 

IOS 蓝牙(GameKit、Core Bluetooth)

GameKit的蓝牙开发注意 ● 只能用于iOS设备之间的连接 ● 只能用于同一个应用程序之间的连接 ● 最好别利用蓝牙发送比较大的数据 iOS中蓝牙的实现方案 ● iOS中提供了4个框架用于实现蓝牙连接 ● GameKit.framework(用法简单) ? 只能用于iOS设备之间的连接,多用于游戏(比如五子棋对战),从iOS7开始过期 ● MultipeerConnectivity.framework ? 只能用于iOS设备之间的连接,从iOS7开始引入,主要用于文件共享(仅限于沙盒的文 件

ionic list component

详见:http://ionicframework.com/docs/css/components 代码一:www/index.html <body ng-app="myreddit" ng-controller="RedditCtrl"> <ion-pane> <ion-header-bar class="bar-positive"> <h1 class="title">My R

iOS开发 -GameKit蓝牙开发

蓝牙4.0 蓝牙4.0是2012年最新蓝牙版本,是3.0的升级版本:较3.0版本更省电.成本低.3毫秒低延迟.超长有效连接距离.AES-128加密等:通常用在蓝牙耳机.蓝牙音箱等设备上. 蓝牙技术联盟(Bluetooth SIG)2010年7月7日宣布,正式采纳蓝牙4.0核心规范(Bluetooth Core Specification Version 4.0 ),并启动对应的认证计划.会员厂商可以提交其产品进行测试,通过后将获得蓝牙4.0标准认证. 该技术拥有极低的运行和待机功耗,使用一粒纽扣

ionic 拍照、相册并上传至又拍云

简单的项目开始: ionic start camera-upload blank 添加平台 ionic platform add ios # 需要mac环境 ionic platform add android 添加必要的插件 MacBook:camera-upload jiang$ cat RAEDME.md # 摄像头插件 ionic plugin add org.apache.cordova.camera # 文件上传.下载插件(自动安装File插件) ionic plugin add o