• 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 service详解,android动画详解,android布局详解等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Android 蓝牙操作详解,android蓝牙详解


1.启用蓝牙并使设备处于可发现状态    


   1.1 在使用BluetoothAdapter类的实例进操作之前,应启用isEnable()方法检查设备是否启用了蓝牙适配器。       // 使用意图提示用户启用蓝牙,并使设备处于可发现状态      private void startBluetooth() {           BluetoothAdapter bt = BluetoothAdapter.getDefaultAdapter();            // 检测蓝牙是否开启            if (!bt.isEnabled()) {               Intent enableIntent = new Intent(                         BluetoothAdapter. ACTION_REQUEST_ENABLE);               startActivityForResult(enableIntent, REQUEST_ENABLE_BT);           }      }  1.2返回意图活动时,调用onActivityResult(),可以提取主设备名称和mac地址    protected void onActivityResult(int requestCode, int resultCode, Intent data) {            if (requestCode == REQUEST_ENABLE_BT                    && resultCode == Activity. RESULT_OK) {               BluetoothAdapter bt = BluetoothAdapter.getDefaultAdapter();               String address = bt.getAddress();               String name = bt.getName();               String toastText = name + " :" + address;               Toast. makeText(this, toastText, Toast.LENGTH_LONG).show();               discoverable();           }      } 1.3 请求用户授权,让设备可被其它临近设备发现:      // 请求用户授权,让设备在120秒内处于可发现状态      private void discoverable() {           Intent discoverableIntent = new Intent(                     BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);           startActivity(discoverableIntent);      }

 

2.连接启用蓝牙设备

   2.1对于任何蓝牙应用,都必须在AndroidManifst.xml中添加如下权限:      <uses-permission android:name= "android.permission.BLUETOOTH_ADMIN" />      <uses-permission android:name= "android.permission.BLUETOOTH" />    2.2 创建到其他蓝牙设备的套接字连接      我们应该在一个线程内持续监听套接字流中的数据。可以在该线程外写入连接的流。这种连接是一个阻塞调用,由于蓝牙设备发现是一个缓慢的过程,可能降低连接速率。所以,在连接其它设备之前要取消设备发现。      蓝牙套接字连接时阻塞调用,只在连接成功或者连接设备发生异常时才会返回。BluetoothConnection一经实例化,就会创建到其他设备的连接,并开始监听来自连接设备的数据。 package com.example.blueoothdemo;

import java.io.InputStream;
import java.io.OutputStream;
import java.util.UUID;

import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothSocket;

/**
* 读写蓝牙设备
*
* @author hbbliyong
*
*/
public class BluetoothConnecion extends Thread {
     private final BluetoothSocket mSocket;
     private final InputStream mInStream;
     private final OutputStream mOutStream;
     byte[] buffer;
     private final BluetoothAdapter mAdapter;
     // 用于本应用程序唯一的UUID,
     private static final UUID MY_UUID = UUID
               .fromString("fa87c0d0-afac-11de-8a39-0800200c9a66");

     public BluetoothConnecion(BluetoothDevice device) {
          BluetoothSocket tmp = null;
          mAdapter = BluetoothAdapter.getDefaultAdapter();
          // 获得用于指定蓝牙连接的BluetoothSocket
          try {
               tmp = device.createRfcommSocketToServiceRecord(MY_UUID);
          } catch (Exception e) {
               e.printStackTrace();
          }
          mSocket = tmp;

          // 在新线程中建立套接字连接,避免FC
          Thread connectionThread = new Thread(new Runnable() {
               @Override
               public void run() {
                    // TODO Auto-generated method stub
                    // 始终取消发现,因为它会降低连接的速度
                    mAdapter.cancelDiscovery();

                    // 建立到BluetoothSocket的连接
                    try {
                         // 这是一个阻塞调用,只在成功连接或者异常时返回
                         mSocket.connect();
                    } catch (Exception e) {
          
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

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

  • Android中使用findViewByMe提升组件查找效率,光伏组件转换效率
  • 详解Android微信登录与分享,详解android分享
  • Android-BroadcastReceiver详解
  • Android 动画资源 详解
  • Android 中的长度单位详解
  • Android的基本世界观——系统简介,组件逻辑及其他
  • Android四大组件之BroadcastReceiver
  • Android pendingInten 用法详解
  • Android中BroadcastReceiver组件详解
  • Android 蓝牙操作详解,android蓝牙详解

相关文章

  • 2017-05-26android gridview画分割线
  • 2017-05-26Android—Service与Activity的交互,androidactivity
  • 2017-05-26android全磁盘加密
  • 2017-05-26深入理解 Android 之 View 的绘制流程,androidview
  • 2017-11-18android TCP自动重连
  • 2017-05-26基于Nginx实现10万+并发,你应该做的Linux内核优化
  • 2017-05-26android:Activity启动模式之standard
  • 2017-05-26解决Android Graphical Layout 界面效果不显示,androidgraphical
  • 2017-05-26程序连不上mysql的问题总结
  • 2017-05-26Android实现一个自定义相机的界面

文章分类

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

最近更新的内容

    • Java时间间隔问题在Android中的使用,javaandroid
    • 转载:android MVC设计模式,androidmvc
    • 大神都是有个起点的,大神都是起点
    • Android软件开发之SharedPreferences,sharedpreferences
    • 编译器开发系列--Ocelot语言6.静态类型检查,编译器--ocelot
    • 8.3.10 Paint API之—— ColorFilter(颜色过滤器)(2-3)
    • LruCache原理解析,lrucache解析
    • getDrawingCache()和Android中的截图方法简介
    • Android 工程集成React Native 0.44 注意点,androidreact
    • Android开发必看-快速提高 Android 开发效率的 Web 工具,android必看

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

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