Android BLE与终端通信(一)——Android Bluetooth基础API以及简单使用获取本地蓝牙名称地址
Hello,工作需要,也必须开始向BLE方向学习了,公司的核心技术就是BLE终端通信技术,无奈一直心不在此,但是真当自己要使用的时候还是比较迷茫,所以最近也有意向来学习这一块,同时,把自己的学习经历分享出来
一.摘要
Android智能硬件前几年野一直不温不火的,到了现在却热火朝天了,各种智能手环,智能手表,智能家居等,而使用BLE这个方向也越来越多,而这方面的资料却是真的很少,可以说少得可怜,所以也打算往这块深入学习一下,有兴趣的可以一起学习!
二.新建工程BLEDemo
三.蓝牙权限
要想使用蓝牙,权限是少不了的
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
12
12
四.蓝牙API
Android所有关于蓝牙开发的类都在android.bluetooth包下
1.BluetoothAdapter
蓝牙适配器,获取本地蓝牙,常用的方法有:
startDiscovery()
cancelDiscovery()
enable()
disable()
Intemtenabler=
new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enabler,reCode);
getName()
getAddress()
getDefaultAdapter()
getRemoteDevice(
String address)
getState()
isDiscovering()
isEnabled()
listenUsingRfcommWithServiceRecord(
String name,UUID uuid)
123456789101112131415161718192021222324252627
123456789101112131415161718192021222324252627
2.BluetoothClass
远程蓝牙设备,同BluetoothAdapter类似,有诸多相同的api,包括getName,getAddress,但是他是获取已经连接设备的信息的,相同的方法就不说了,说个不同的吧
createRfcommSocketToServiceRecord(UUIDuuid)
12
12
3.BluetoothServerSocket
看到Socket,你就大致知道这个玩意是干嘛的了,他和我们Android上的Socket用法还有点类似,我们来看一下常用的方法
accept()
accept(inttimeout)
close()
12345
12345
4.BluetoothSocket
他和上面那个相反,他没有Server,就代表他是客户端,看看他有哪些常用的方法
connect()
close()
getInptuStream()
getOutputStream()
getRemoteDevice()
12345678910
12345678910
其他几个倒是不怎么用到
5.BluetoothClass.Device
6.BluetoothClass.Device.Major
7.BluetoothClass.Service
8.BluetoothDevice
五.搭建蓝牙环境
这里指的不是说要下载什么,只是我们运用蓝牙的时候需要做的一些准备
package com.lgl.bledemo;
import android.bluetooth.BluetoothAdapter;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private BluetoothAdapter mBluetoothAdapter;
private static final int REQUEST_ENABLE =
1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (mBluetoothAdapter ==
null) {
Toast.makeText(
this,
"本地蓝牙不可用", Toast.LENGTH_SHORT).show();
finish();
}
if (!mBluetoothAdapter.isEnabled()) {
Intent intent =
new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(intent, REQUEST_ENABLE);
}
String name = mBluetoothAdapter.getName();
String address = mBluetoothAdapter.getAddress();
Log.i(
"BLE Name", name);
Log.i(
"BLE Address", address);
}
}
12345678910111213141516171819202122232425262728293031323334353637383940414243444546
12345678910111213141516171819202122232425262728293031323334353637383940414243444546
好的,这样就可以获取到相关信息了
这篇算是一个开头,毕竟是由浅到深,我们慢慢来,Demo的话,就算了,代码都贴出来了,记得添加权限哦,我们下一篇就开始讲搜索和连接了
Demo下载:http://download.csdn.net/detail/qq_26787115/9413448
Android BLE与终端通信(二)——Android Bluetooth基础搜索蓝牙设备显示列表
转载请注明原文地址: https://ju.6miu.com/read-1000390.html