蓝牙操作
一、什么是蓝牙
1、Bluetooth广泛使用的一种无线通讯协议
2、主要针对短距离通讯(10m)
3、常用于耳机、鼠标、键盘等移动通讯设备
二、与蓝牙相关的API
1、BluetoothAdapter:代表本地蓝牙设备
2、BluetoothDevice:代表远程蓝牙设备
三、蓝牙需要的设置
需要在AndroidManifest中申明蓝牙操作的权限
四、扫描已经配对的蓝牙设备
1、获取BluetoothAdapter对象
BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter()
2、判断当前设备中是否有蓝牙设备
if(adapter != null){}
3、判断当前设备中的蓝牙设备是否已经打开
使用adapter.isEnabled()方法
4、得到所有已经配对的蓝牙设备
Set
devices = adapter.getBondedDevices();
五、设置蓝牙设备的可见性
1、创建intent对象:
Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
2、设置可见性的时间,最大300s,超过300s系统会自动设为300s
discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 300);
3、启动Android内置activity,将参数传入
startActivity(discoverableIntent);
六、扫描周围可见的蓝牙
1、调用startDiscovery()来扫描周围可见设备
BluetoothAdapter.getDefaultAdapter().startDiscovery();
2、每次扫描到系统就会发送广播
A、创建一个过滤器,过滤广播ACTION_FOUND
IntentFilter intentFilter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
B、创建一个广播接收器
BluetoothReceiver bluetoothReceiver = new BluetoothReceiver();
C、 注册接收器
registerReceiver(bluetoothReceiver, intentFilter);
D、在广播中取出数据
String action = intent.getAction();
//从intent取出远程蓝牙设备
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
七、源代码
MainActivity.java
布局文件
-
<RelativeLayout xmlns:android=""
-
xmlns:tools=""
-
android:layout_width="match_parent"
-
android:layout_height="match_parent"
-
android:paddingBottom="@dimen/activity_vertical_margin"
-
android:paddingLeft="@dimen/activity_horizontal_margin"
-
android:paddingRight="@dimen/activity_horizontal_margin"
-
android:paddingTop="@dimen/activity_vertical_margin"
-
tools:context=".MainActivity" >
-
-
<Button
-
android:id="@+id/findBtn"
-
android:layout_width="fill_parent"
-
android:layout_height="wrap_content"
-
android:text="扫描已经连接的蓝牙"
-
/>
-
<Button
-
android:id="@+id/setBtn"
-
android:layout_width="fill_parent"
-
android:layout_height="wrap_content"
-
android:layout_below="@+id/findBtn"
-
android:text="设置蓝牙可见性"
-
/>
-
<Button
-
android:id="@+id/scanBtn"
-
android:layout_width="fill_parent"
-
android:layout_height="wrap_content"
-
android:layout_below="@+id/setBtn"
-
android:text="扫描周围可见的蓝牙"
-
/>
-
<EditText
-
android:id="@+id/edit1"
-
android:layout_width="fill_parent"
-
android:layout_height="wrap_content"
-
android:layout_below="@+id/scanBtn"
-
/>
-
-
</RelativeLayout>
阅读(15479) | 评论(0) | 转发(2) |