• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > Android蓝牙操作笔记,android蓝牙笔记

Android蓝牙操作笔记,android蓝牙笔记

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了android蓝牙操作,android 蓝牙开发,android蓝牙开发实例,android 蓝牙,android 蓝牙通信等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Android蓝牙操作笔记,android蓝牙笔记


蓝牙是一种支持设备短距离传输数据的无线技术。android在2.0以后提供了这方面的支持。 
从查找蓝牙设备到能够相互通信要经过几个基本步骤(本机做为服务器): 
1.设置权限 
在manifest中配置 

  1. <uses-permission android:name="android.permission.BLUETOOTH"/>  
  2. <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>  



2.启动蓝牙 
首先要查看本机是否支持蓝牙,获取BluetoothAdapter蓝牙适配器对象 

  1. BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();  
  2. if(mBluetoothAdapter == null){  
  3.         //表明此手机不支持蓝牙  
  4.         return;  
  5. }  
  6. if(!mBluetoothAdapter.isEnabled()){ //蓝牙未开启,则开启蓝牙  
  7.             Intent enableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);  
  8.             startActivityForResult(enableIntent, REQUEST_ENABLE_BT);  
  9. }  
  10. //......  
  11. public void onActivityResult(int requestCode, int resultCode, Intent data){  
  12.        if(requestCode == REQUEST_ENABLE_BT){  
  13.               if(requestCode == RESULT_OK){  
  14.                    //蓝牙已经开启   
  15.               }  
  16.        }  
  17. }  



3。发现蓝牙设备 
这里可以细分为几个方面 
(1)使本机蓝牙处于可见(即处于易被搜索到状态),便于其他设备发现本机蓝牙 

  1. //使本机蓝牙在300秒内可被搜索  
  2. private void ensureDiscoverable() {  
  3.         if (mBluetoothAdapter.getScanMode() !=  
  4.             BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE) {  
  5.             Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);  
  6.             discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 300);  
  7.             startActivity(discoverableIntent);  
  8.         }  
  9. }  


(2)查找已经配对的蓝牙设备,即以前已经配对过的设备 

  1. Set<BluetoothDevice> pairedDevices = mBluetoothAdapter.getBondedDevices();  
  2. if (pairedDevices.size() > 0) {  
  3.     findViewById(R.id.title_paired_devices).setVisibility(View.VISIBLE);  
  4.     for (BluetoothDevice device : pairedDevices) {  
  5.         //device.getName() +" "+ device.getAddress());  
  6.     }  
  7. } else {  
  8.     mPairedDevicesArrayAdapter.add("没有找到已匹对的设备");  
  9. }  


(3)通过mBluetoothAdapter.startDiscovery();搜索设备,要获得此搜索的结果需要注册 
一个BroadcastReceiver来获取。先注册再获取信息,然后处理 

  1. //注册,当一个设备被发现时调用onReceive  
  2. IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);  
  3.         this.registerReceiver(mReceiver, filter);  
  4.   
  5. //当搜索结束后调用onReceive  
  6. filter = new IntentFilter(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);  
  7.         this.registerReceiver(mReceiver, filter);  
  8. //.......  
  9. private BroadcastReceiver mReceiver = new BroadcastReceiver() {  
  10.         @Override  
  11.         public void onReceive(Context context, Intent intent) {  
  12.             String action = intent.getAction();  
  13.             if(BluetoothDevice.ACTION_FOUND.equals(action)){  
  14.                  BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);  
  15.                   // 已经配对的则跳过  
  16.                  if (device.getBondState() != BluetoothDevice.BOND_BONDED) {  
  17.                       mNewDevicesArrayAdapter.add(device.getN
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Android蓝牙操作笔记,android蓝牙笔记

相关文章

  • 2017-05-26Xamarin android 的WebClient Json下载并存储本地及sqlite数据库,xamarinsqlite
  • 2017-05-26Smack+OpenFire搭建IM通信,包含心跳和自动重连(Android实现),smackopenfire
  • 2017-05-26android下拉选择框spinner,android下拉spinner
  • 2017-05-26Xamarin.Forms跨平台开发入门-第二部分:深入解析,
  • 2017-05-26android 特殊用户通知用法汇总--Notification源码分析
  • 2017-05-26AlertDialog创建6种对话框的用法
  • 2017-05-26Linux内核系列—操作系统开发之HelloWorld,linuxhelloworld
  • 2017-05-26Android开发学习——应用安装过程,android开发
  • 2017-05-26Android学习过程中的一些基础笔记,android笔记
  • 2017-05-26andriod 获取电池的信息,andriod获取电池

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • App启动页倒计时功能,app启动倒计时
    • Android listview和gridview以及view的区别,androidgridview
    • android am命令以及hotkey文件的编写,
    • Kotlin中功能操作与集合(KAD 11),
    • 编译器开发系列--Ocelot语言3.类型名称的消解,编译器--ocelot
    • Android 中的R文件 丢失或无法更新,android
    • Xamarin.Forms+Prism(2)—— 基本使用 NavigationService,xamarin.forms
    • View的layout机制,Viewlayout机制
    • ArcGIS Android工程迁移到其他电脑不能打开的问题,arcgisandroid
    • 转载:android MVC设计模式,androidmvc

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有