一. 什么是蓝牙(Bluetooth)?

1.1  BuleTooth是目前使用最广泛的无线通信协议

1.2  主要针对短距离设备通讯(10m)

1.3  常用于连接耳机,鼠标和移动通讯设备等.

二. 与蓝牙相关的API

2.1 BluetoothAdapter:

代表了本地的蓝牙适配器

2.2 BluetoothDevice

代表了一个远程的Bluetooth设备

三. 扫描已经配对的蓝牙设备(1)

注:必须部署在真实手机上,模拟器无法实现

首先需要在AndroidManifest.xml 声明蓝牙权限

<user-permission android:name="android.permission.BLUETOOTH" />

配对蓝牙需要手动操作:

1. 打开设置--> 无线网络 --> 蓝牙 勾选开启

2. 打开蓝牙设置  扫描周围已经开启的蓝牙设备(可以与自己的笔记本电脑进行配对),点击进行配对

电脑上会弹出提示窗口: 添加设备

显示计算与设备之间的配对码,要求确认是否配对

手机上也会显示类似的提示.

四. 扫描已经配对的蓝牙设备(2)

4.1 获得BluetoothAdapter对象

4.2 判断当前移动设备中是否拥有蓝牙

4.3 判断当前移动设备中蓝牙是否已经打开

4.4 得到所有已经配对的蓝牙设备对象

import java.util.Iterator;
import java.util.Set; import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button; public class MainActivity extends Activity {
private Button button = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main); button = (Button)findViewById(R.id.buttonId);
button.setOnClickListener(new OnClickListener(){ @Override
public void onClick(View v) {
//获得BluetoothAdapter对象,该API是android 2.0开始支持的
BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
//adapter不等于null,说明本机有蓝牙设备
if(adapter != null){
System.out.println("本机有蓝牙设备!");
//如果蓝牙设备未开启
if(!adapter.isEnabled()){
Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
//请求开启蓝牙设备
startActivity(intent);
}
//获得已配对的远程蓝牙设备的集合
Set<BluetoothDevice> devices = adapter.getBondedDevices();
if(devices.size()>0){
for(Iterator<BluetoothDevice> it = devices.iterator();it.hasNext();){
BluetoothDevice device = (BluetoothDevice)it.next();
//打印出远程蓝牙设备的物理地址
System.out.println(device.getAddress());
}
}else{
System.out.println("还没有已配对的远程蓝牙设备!");
}
}else{
System.out.println("本机没有蓝牙设备!");
}
}
});
}
}

  

Android开发之蓝牙--扫描已经配对的蓝牙设备的更多相关文章

  1. Android开发之蓝牙(Bluetooth)操作(一)--扫描已经配对的蓝牙设备

    版权声明:本文为博主原创文章,未经博主允许不得转载. 一. 什么是蓝牙(Bluetooth)? 1.1  BuleTooth是目前使用最广泛的无线通信协议 1.2  主要针对短距离设备通讯(10m) ...

  2. 【视频】零基础学Android开发:蓝牙聊天室APP(四)

    零基础学Android开发:蓝牙聊天室APP第四讲 4.1 ListView控件的使用 4.2 BaseAdapter具体解释 4.3 ListView分布与滚动事件 4.4 ListView事件监听 ...

  3. 【视频】零基础学Android开发:蓝牙聊天室APP(二)

    零基础学Android开发:蓝牙聊天室APP第二讲 2.1 课程内容应用场景 2.2 Android UI设计 2.3 组件布局:LinearLayout和RelativeLayout 2.4 Tex ...

  4. 【视频】零基础学Android开发:蓝牙聊天室APP(三)

    零基础学Android开发:蓝牙聊天室APP第三讲 3.1 ImageView.ImageButton控件具体解释 3.2 GridView控件具体解释 3.3 SimpleAdapter适配器具体解 ...

  5. 【视频】零基础学Android开发:蓝牙聊天室APP(一)

    零基础学Android开发:蓝牙聊天室APP第一讲 1. Android介绍与环境搭建:史上最高效Android入门学习 1.1 Google的大小战略 1.2 物联网与云计算 1.3 智能XX设备 ...

  6. Android开发之蓝牙 --修改本机蓝牙设备的可见性,并扫描周围可用的蓝牙设备

    一. 修改本机蓝牙设备的可见性 二. 扫描周围可用的蓝牙设备 一.  清单文件AdroidManifest.xml: <uses-permission android:name="an ...

  7. Android开发之蓝牙(Bluetooth)操作(二)--修改本机蓝牙设备的可见性,并扫描周围可用的蓝牙设备

    版权声明:本文为博主原创文章,未经博主允许不得转载. 一. 修改本机蓝牙设备的可见性 二. 扫描周围可用的蓝牙设备 Eg: 一.  清单文件AdroidManifest.xml: <?xml v ...

  8. android开发之蓝牙配对连接的方法

    最近在做蓝牙开锁的小项目,手机去连接单片机总是出现问题,和手机的连接也不稳定,看了不少蓝牙方面的文档,做了个关于蓝牙连接的小结. 在做android蓝牙串口连接的时候一般会使用 ? 1 2 3 4 5 ...

  9. Android开发之蓝牙Socket

    蓝牙Server端就是通过线程来注册一个具有名称和唯一识别的UUID号的BluetoothServerSocket, 然后就一直监听Client端(BluetoothSocket)的请求,并对这些请求 ...

随机推荐

  1. 【kd-tree】bzoj3053 The Closest M Points

    同p2626.由于K比较小,所以不必用堆. #include<cstdio> #include<cstring> #include<cmath> #include& ...

  2. 从nib文件里加载collectionViewCell

    如何取出在xib文件里绘制的collectionViewCell ? 1.获得nib文件 UINib *nib = [[UINib NibWithName:@"xib文件的名字"] ...

  3. Python 迭代dict 效率

    迭代dict也要讲求效率,不然就要走进性能陷阱 以下三种迭代方式:keys,iterkeys, hashkey import timeit DICT_SIZE = 100 * 100000 testD ...

  4. 第44讲:Scala中View Bounds代码实战及其在Spark中的应用源码解析

    今天学习了view bounds的内容,来看下面的代码. //class Pair[T <: Comparable[T]](val first : T,val second : T){//  d ...

  5. MS对WCF配置中security节点的解释

    摘录地址:http://msdn.microsoft.com/zh-CN/library/azure/ms731347 <basicHttpBinding> 的 <security& ...

  6. 我的Win32开发抉择,Delphi老将复出

    这两天在开发公司的一个教学软件客户端,因为要考虑到给PHP.平面设计等班的同学使用,为了避免安装.Net Framework.JRE的麻烦(如果把.Net Framework.JRE打包到安装包,也会 ...

  7. REST API 安全设计指南

    0x01 REST API 简介 REST的全称是REpresentational State Transfer,表示表述性无状态传输,无需session,所以每次请求都得带上身份认证信息.rest是 ...

  8. 单元测试 Mocking 类库需具备的特性

    一个优秀的单元测试 Mocking 类库,需要具备如下几个特性: 易用性:有非常明确的 API ,易于使用并易于记忆. 健壮性:行为结果始终一致,并保持准确. 帮助性:当程序出错时,给出尽可能明确的原 ...

  9. 图书馆管理系统—NABCD模型竞争性需求分析

    本次课程设计设计题目:“图书管理系统”主要目的是利用数据库软件编制一个管理软件,用以实现图书.读者以及日常工作等多项管理.同时对整个系统的分析.设计过程给出一个完整论证. 1>N(Need 需求 ...

  10. Oracle 创建主键自增表

    200 ? "200px" : this.width)!important;} --> 介绍 本篇文章主要介绍在oracle中如果创建自增长表,这里要用到序列. create ...