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. }  
  • 相关阅读:
    POJ 1681 Painter's Problem(高斯消元法)
    HDU 3530 Subsequence(单调队列)
    HDU 4302 Holedox Eating(优先队列或者线段树)
    POJ 2947 Widget Factory(高斯消元法,解模线性方程组)
    HDU 3635 Dragon Balls(并查集)
    HDU 4301 Divide Chocolate(找规律,DP)
    POJ 1753 Flip Game(高斯消元)
    POJ 3185 The Water Bowls(高斯消元)
    克琳:http://liyu.eu5.org
    WinDbg使用
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/6798529.html
Copyright © 2011-2022 走看看