• Android开发之蓝牙--扫描已经配对的蓝牙设备


    一. 什么是蓝牙(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("本机没有蓝牙设备!");
    				}
    			}
            });
        }
    }
    

      

  • 相关阅读:
    [UE4]Spline
    [UE4]Spline Mesh Actor
    SpringBoot的jar包引用外部properties文件
    如何将.crt文件转换为.cer格式
    消息队列之 RabbitMQ
    The last packet successfully received from the server was 8 milliseconds ago.
    DEBUG、INFO、WARN、ERROR、CRITICAL开发日志级别定义
    灰度发布-流程篇
    k8s+istio:流量控制之灰度发布
    微服务、SpringCloud、k8s、Istio杂谈
  • 原文地址:https://www.cnblogs.com/lhj588/p/3610445.html
Copyright © 2020-2023  润新知