zoukankan      html  css  js  c++  java
  • Android开发之蓝牙(Bluetooth)操作(一)--扫描已经配对的蓝牙设备

    一. 什么是蓝牙(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 得到所有已经配对的蓝牙设备对象

    实现代码如下:

    MainActivity:

    [java] view plain copy
     
    1. import java.util.Iterator;  
    2. import java.util.Set;  
    3.   
    4. import android.app.Activity;  
    5. import android.bluetooth.BluetoothAdapter;  
    6. import android.bluetooth.BluetoothDevice;  
    7. import android.content.Intent;  
    8. import android.os.Bundle;  
    9. import android.view.View;  
    10. import android.view.View.OnClickListener;  
    11. import android.widget.Button;  
    12.   
    13. public class MainActivity extends Activity {  
    14.     private Button button = null;  
    15.     /** Called when the activity is first created. */  
    16.     @Override  
    17.     public void onCreate(Bundle savedInstanceState) {  
    18.         super.onCreate(savedInstanceState);  
    19.         setContentView(R.layout.main);  
    20.           
    21.         button = (Button)findViewById(R.id.buttonId);  
    22.         button.setOnClickListener(new OnClickListener(){  
    23.   
    24.             @Override  
    25.             public void onClick(View v) {  
    26.                 //获得BluetoothAdapter对象,该API是android 2.0开始支持的  
    27.                 BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();  
    28.                 //adapter不等于null,说明本机有蓝牙设备  
    29.                 if(adapter != null){  
    30.                     System.out.println("本机有蓝牙设备!");  
    31.                     //如果蓝牙设备未开启  
    32.                     if(!adapter.isEnabled()){  
    33.                         Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);  
    34.                         //请求开启蓝牙设备  
    35.                         startActivity(intent);  
    36.                     }  
    37.                     //获得已配对的远程蓝牙设备的集合  
    38.                     Set<BluetoothDevice> devices = adapter.getBondedDevices();  
    39.                     if(devices.size()>0){  
    40.                         for(Iterator<BluetoothDevice> it = devices.iterator();it.hasNext();){  
    41.                             BluetoothDevice device = (BluetoothDevice)it.next();  
    42.                             //打印出远程蓝牙设备的物理地址  
    43.                             System.out.println(device.getAddress());  
    44.                         }  
    45.                     }else{  
    46.                         System.out.println("还没有已配对的远程蓝牙设备!");  
    47.                     }  
    48.                 }else{  
    49.                     System.out.println("本机没有蓝牙设备!");  
    50.                 }  
    51.             }  
    52.         });  
    53.     }  
    54. }  
  • 相关阅读:
    spring security 获取当前用户
    spring data jpa deleteInBatch 导致异常 java.lang.StackOverflowError
    大数据 分布式文件系统 HDFS概念
    angular9 ng start正常,build部署后无法正常加载页面
    springboot使用rocketmq RocketMQMessageListener参数
    spring boot使用rocketmq
    Teamcenter RAC 调用查询
    Teamcenter RAC 查找数据集并获取数据集中文件
    带有编译时和运行时的简记
    前台线程和后台线程、线程安全
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/6798529.html
Copyright © 2011-2022 走看看