Android 扫描蓝牙设备

Android扫描蓝牙设备是个异步的过程,核心的步骤为:调用bluetoothAdapter的startDiscovery()进行设备扫描,扫描的结果通过广播接收处理!具体如下:

1.申请相关权限

1 <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
2     <uses-permission android:name="android.permission.BLUETOOTH"/>

2.注册广播

1 private void registerBroadcast() {
2         // Register for broadcasts when a device is discovered
3         IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
4         mContext.registerReceiver(mReceiver, filter);
5
6         // Register for broadcasts when discovery has finished
7         filter = new IntentFilter(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);
8         mContext.registerReceiver(mReceiver, filter);
9     }

3.扫描设备

1 private void doDiscovery() {
2         // If we‘re already discovering, stop it
3         if (mBluetoothAdapter.isDiscovering()) {
4             mBluetoothAdapter.cancelDiscovery();
5         }
6         // Request discover from BluetoothAdapter
7         mBluetoothAdapter.startDiscovery();
8     }

4.广播中处理扫描到的设备

 1 private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
 2         @Override
 3         public void onReceive(Context context, Intent intent) {
 4             String action = intent.getAction();
 5
 6             if (BluetoothDevice.ACTION_FOUND.equals(action)) {
 7                 // TODO discovery finds a device
 8
 9             } else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED
10                     .equals(action)) {
11                 // TODO discovery is finished
12             }
13         }
14     };
时间: 2024-09-30 16:24:29

Android 扫描蓝牙设备的相关文章

Android 读取蓝牙设备信息开发

(1)Android手机一般以客户端的角色主动连接SPP协议设备(接上蓝牙模块的数字传感器),连接流程是: 1.使用registerReceiver注册BroadcastReceiver来获取蓝牙状态.搜索设备等消息: 2.使用BlueAdatper的搜索: 3.在BroadcastReceiver的onReceive()里取得搜索所得的蓝牙设备信息(如名称,MAC,RSSI): 4.通过设备的MAC地址来建立一个BluetoothDevice对象: 5.由BluetoothDevice衍生出B

android 打开蓝牙设备 显示已经配对的蓝牙设备 ,并将已配对的蓝牙设备显示在textview中

(1)要想使用android 手机的Bluetooth,需要在androidmanifest文件中加入使用蓝牙的权限. <uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> 注意:权限应该添加在androidmanifest文件中&

Android扫描二维码 实现 登录网页

1. 扫描二维码登录的实现机制 * Android客户端要给网页端发送信息,说登录的是我 * 网页登录界面要不断的查询是否已经被扫描登录 总体分三步: ① PC端保存randnumber(随机数) ② Android客户端携带username 保存在randnumber那条记录上 ③ PC端去服务器轮询,如果randnumber记录的username不为空,则实行登录即可 2. Android 客户端扫描二维码 介绍一个库 Zxing,这是一个庞大的库,有人已经整理出了扫描二维码部分的库

android扫描二维码和生产二维码

极客学院扫描二维码和生成二维码 package com.example.testqr; import android.app.Activity; import android.content.Intent; import android.graphics.Bitmap; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.view.View.OnClickList

Android 扫描音乐文件、两种方式获取文件最新修改时间

package com.example.demo_mediascanner; import java.io.File; import java.util.Calendar; import java.util.Date; import android.net.Uri; import android.os.Bundle; import android.os.Environment; import android.provider.MediaStore; import android.app.Acti

android扫描网页二维码进行网页登录

转载请标明出处: http://www.cnblogs.com/dingxiansen/: 本文出自:丁先森-博客园 周六和朋友去网吧开黑,开机打开TGP,朋友那边开始输入账号密码,我看了他一眼low逼,现在谁还手动输入,手机扫一扫就好了,然后打开手机app扫一扫登录成功,美滋滋.其实我们现在不难发现,很多的网页为了便捷登录除了第三方程序登陆,就是二维码扫描登录,比如某宝,某鱼等等,其实我认为二维码扫描不只是为了快捷登录,让人们省了输入账号密码的麻烦,还有一个是为了推广他们的app,不得不说这种

Android 扫描枪开发(一)

最近公司需要,准备开发扫描枪. 话不多说,直接开始 一,创建新项目 1 如果遇到 Error:Execution failed for task ':app:preDebugAndroidTestBuild'.> Conflict with dependency 'com.android.support:support-annotations' in project ':app'. Resolved versions for app (26.1.0) and test app (27.1.1)

杂记:解决Android扫描BLE设备名称不刷新问题

背景 个人开发过一种BLE设备有这样一种需求:当设备处于状态A时,广播设备名称A:处于状态B时,广播设备名称B. 问题 我们发现,当Android在进行Ble扫描的时候,扫描回调函数onScanResult中获取的设备名称并未随设备实时改变. 但是当使用nrfConnect进行扫描时,却发现设备广播名称确实是实时改变的. 原因 我们使用如下代码获取BLE设备名称,然而此时device.getName()中的名称是系统缓存的数据,而非实时的广播数据,要想获取实时的设备名称,必须自行解码实时广播数据

Android 扫描Scard卡所有的图片

这几天为了扫描Scard卡所有的图片的事非常纠结,我原本以为这是一件很简单的事,但是我发现我错了.网上也没有完整的代码,只是零零碎碎的能扫描单个文件的代码.在今天代码调试通过之后,我觉得我有必要和大家分享一下. 1.由于是手机端的扫描,所以最好开个线程.在子线程中把扫描工作完成这是非常重要的,那么现在开始来看这个类吧!这个代码可以扫描出SCARD卡上所有的文件. public class GetFilePathThread implements Runnable { public String