Android:经典蓝牙实现聊天功能

前言

原来蓝牙现在还分经典蓝牙、低功耗蓝牙和双模蓝牙,技术的发展真的超过个人的认知速度,不学习意味退步。本来写着低功耗蓝牙和智能蓝牙音箱的交互,但写到最后,因为蓝牙音箱还没有做好,没办法给本文的结果做个保障,故最后改成蓝牙聊天。蓝牙聊天可能适合在搭飞机和高铁这种没有网络或者网络不好等特殊情况下使用。本文的Demo可以正常使用。

本文总体流程:发现蓝牙->配对蓝牙->连接蓝牙->数据交互

在这个流程,主要是一些细节和异常的处理,如何更好的体现用户体验。

声明权限

在项目的配置文件AndroidManifest.xml加入如下代码即可,让APP具有蓝牙访问权限和发现周边蓝牙权限。

//使用蓝牙需要该权限
<uses-permission android:name="android.permission.BLUETOOTH"/>
//使用扫描和设置需要权限
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
//Android 6.0以上声明一下两个权限之一即可。声明位置权限,不然扫描或者发现蓝牙功能用不了哦
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

Android 6.0以上动态申请权限位置权限,否则默认是禁止的,无法获取到蓝牙列表。

/**
 * Android 6.0 动态申请授权定位信息权限,否则扫描蓝牙列表为空
 */
private void requestPermissions() {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        if (ContextCompat.checkSelfPermission(this,
                Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {

            if (ActivityCompat.shouldShowRequestPermissionRationale(this,
                    Manifest.permission.ACCESS_COARSE_LOCATION)) {
                Toast.makeText(this, "使用蓝牙需要授权定位信息", Toast.LENGTH_LONG).show();
            }
            //请求权限
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值