最近在做一个新的项目,需要用到蓝牙开发,但是我之前都没接触过,在网上找了很多教程,基本都是又臭又长,对开发时间比较短的人很不友好。如果你只是想要实现一个低能耗蓝牙开发,那么就接着往下看吧。如果是要深度学习蓝牙,那这篇文章就不适合啦~
1、所有的蓝牙开发,不管是传统蓝牙还是低能耗蓝牙,第一步都是需要先获取权限。
(1)在AndroidManifest.xml文件中添加如下权限:
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
(2)动态获取权限:
private String[] PERMISSIONS_STORAGE = {
Manifest.permission.BLUETOOTH,
Manifest.permission.BLUETOOTH_ADMIN,
Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.ACCESS_FINE_LOCATION
};
//定义判断权限申请的函数,在onCreat中调用就行
public void applypermission(){
if(Build.VERSION.SDK_INT>=23){
boolean needapply=false;
for(int i=0;i<PERMISSIONS_STORAGE.length;i++){
int chechpermission= ContextCompat.checkSelfPermission(getApplicationContext(),
PERMISSIONS_STORAGE[i]);
if(chechpermission!= PackageManager.PERMISSION_GRANTED){
needapply=true;
}
}
if(needapply){
ActivityCompat.requestPermissions(MainActivity.this,PERMISSIONS_STORAGE,1);
}
}
}
到这里,蓝牙的权限获取就结束啦~
2、第二步获取本地蓝牙,即获取蓝牙适配器。
final BluetoothManager bluetoothManager =
(BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);
mBluetoothAdapter = bluetoothManager.getAdapter();
3、判断本机的蓝牙是否可用以及是否有打开,如果本机的蓝牙处于关闭状态,那么就打开蓝牙。
if (mBluetoothAdapter == null || !mBluetoothAdapter.isEnabled()) {
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, 1);
}
4、打开蓝牙之后,就可以开始扫描蓝牙了。
由于扫描会消耗电量,所以我们再进行扫描的时候,可以自定义一个合适的