前言 之前写了一个蓝牙的小Demo,看的人还是有一些的,也有人私信我说,在学Kotlin,能不能出一版Kotlin的博客讲述这个蓝牙开发,这个想法还是不错的,不过就怕写了没有人看,因为在国内Kotlin...[在这里插入图片描述] 没错,这就是Kotlin语言的Android项目,和Java还是有区别的,建议了解了Kotlin的语法再看文章会比较好,当然你也可以对照我写的Android 蓝牙开发(扫描设备、...\_ENABLE\_BLUETOOTH = 1 **BluetoothReceiver**报红没有关系不要慌,下面会写的,先看这个初始化蓝牙的方法,比较简单,我想不用讲代码了。...\_REQUEST\_ENABLE) startActivityForResult(intent, REQUEST\_ENABLE\_BLUETOOTH)...action) { //显示蓝牙设备 BluetoothDevice.ACTION\_FOUND -> showDevicesData
Kotlin版 蓝牙开发 (扫描设备、绑定、解绑) 前言 之前写了一个蓝牙的小Demo,看的人还是有一些的,也有人私信我说,在学Kotlin,能不能出一版Kotlin的博客讲述这个蓝牙开发,这个想法还是不错的...没错,这就是Kotlin语言的Android项目,和Java还是有区别的,建议了解了Kotlin的语法再看文章会比较好,当然你也可以对照我写的Android 蓝牙开发(扫描设备、绑定、解绑)Java版来看...可变列表 private var list: MutableList = mutableListOf() //请求码 private val REQUEST_ENABLE_BLUETOOTH...startDiscovery() } else { //未打开 val intent = Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE...) startActivityForResult(intent, REQUEST_ENABLE_BLUETOOTH) } } else
--Android 6 至 11 没有打开位置开关 无法扫描蓝牙--> <include android:id="@+id/enable_location_lay"...-- Android12 开启蓝牙需要先请求蓝牙连接权限 --> <include android:id="@+id/request_bluetooth_connect_lay"...R.id.btn_request_connect_permission -> {} //打开蓝牙开关 R.id.btn_enable_bluetooth...R.id.btn_enable_location -> {} //请求蓝牙扫描权限 R.id.btn_request_scan_permission...) //打开蓝牙开关 R.id.btn_enable_bluetooth -> enableBluetooth.launch(Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE
调用isEnable()以检查当前是否已启用蓝牙; 如果此方法返回false,则表示蓝牙处于停用状态; 要请求启用蓝牙,将通过ACTION_REQUEST_ENABLE向系统设置 发出启用蓝牙的请求...if(mBluetoothAdapter.isEnabled()){ Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE...); startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT); } ---- demo(查看本机是否支持蓝牙...(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT...(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT
(更新时间:2020-03-27) 开发环境 Gprinter佳博打印机,型号GP-2120TU Android Studio 3.6.1,gradle 3.5.3 本文可能内容比较长,但是难度不大。...mBluetoothAdapter.isEnabled()) { Intent enableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE...); startActivityForResult(enableIntent, REQUEST_ENABLE_BT); } else {...Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == REQUEST_ENABLE_BT...= intent.getAction(); // 每当发现一个蓝牙设备时 if (BluetoothDevice.ACTION_FOUND.equals
相比传统的蓝牙,BLE更显著的特点是低功耗。这一优点使android App可以与具有低功耗要求的BLE设备通信,如近距离传感器、心脏速率监视器、健身设备等。...mBluetoothAdapter.isEnabled()) { Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE...); startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT); } 发现 BLE 设备 ---- 为了发现BLE设备,使用 startLeScan...4.3 (Jelly Bean) 的 Android Studio 项目。...AndroidStudio.png AndroidManifest.xml 文件中声明蓝牙相关权限: <uses-feature android:name="android.hardware.bluetooth_le
低功耗蓝牙开发(扫描、连接、数据交互)Kotlin版 前言 正文 一、配置项目 二、页面设计 三、扫描设备 ① 绑定视图 ② 检查Android版本 ③ 打开蓝牙 ④ 请求权限 ⑤ 扫描结果 ⑥ 设备适配器编写...,再加上我也想写一些关于Kotlin的内容,对于低功耗蓝牙的Java版的,我写了两篇,一个是扫描、连接,另一篇就是数据交互,而这篇Kotlin文章我会减少讲解的环节,更多的注重业务逻辑和UI以及Kotlin...后面我就直接写Kotlin代码,不熟悉的可以留言提问,事先声明我的Kotlin很菜,所以可读性相对来说高一些。 从上面的方法中可以知道逻辑就是Android6.0以上就请求权限,以下就打开蓝牙。...,可以开始扫描设备了") else activityResult.launch(Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE)) } 这个方法中主要就是当蓝牙开发未打开的时候...,通过Intent去打开系统蓝牙,注意这一行代码: activityResult.launch(Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE)) 在Android
两个附加域, 需要BLUETOOTH权限; (4)蓝牙操作请求的广播 开启蓝牙 : String ACTION_REQUEST_ENABLE, 打开蓝牙, 值为"android.bluetooth.adapter.action.REQUEST_ENABLE...", Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(intent...RESULT_CANCELED; 打开和关闭蓝牙模块, 都可以通过ACTION_STATE_CHANGED广播来监听; 蓝牙可见 : String ACTION_REQUEST_DISCOVERABLE..., 使蓝牙可见, 值为"android.bluetooth.adapter.action.REQUEST_DISCOVERABLE", 默认的可见时间为120s, 可以在广播中添加附加域, 设置任意的可见时间...mBluetoothAdapter.isEnabled()) //未打开蓝牙,才需要打开蓝牙 { Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE
第一种装ADT的方式是:Eclipse+Android SDK+ADT Plugin。 第二种方法是安装Android Studio。 我采用的第二种方法。...¶2.2 创建工程 参考自:使用Android Studio开发Android APP 我选的最低Android版本是23,即6.0版。...¶2.3 一些小get Android Studio采用gradle来构建项目,gradle是一个项目构建工具,可以完成软件环境部署和打包等任务。...你在Android Studio写好的代码最终要下载到手机里,或者打包成apk发布出去,这里的工作就依赖gradle完成。...ACTION_REQUEST_ENABLE); startActivityForResult(enablelntent,1); 一种是静默模式的,这种模式需要在Androidmanifest文件中添加权限
或ACCESS_FINE_LOCATION,然后再执行蓝牙扫描 } 我们其实可以直接使用bluetoothAdapter.enable()开启蓝牙。...bluetoothAdapter.isEnabled()) { Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE...); startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT); } 但是现在startActivityForResult方法已经过时。...然后在需要进行蓝牙设置界面启动的地方配置: Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); //创建一个蓝牙启动的意图...我们如果使用bluetoothAdapter.enable();时Android Studio出现代码错误警告,可以在该代码使用的方法中添加:@SuppressLint("MissingPermission
Android蓝牙功能的开发一直是很多新手头疼的问题,网上虽然也有很多教程贴,但大多都写得不全面,不能让我们真正掌握蓝牙开发的基本知识。...要用到蓝牙的功能,需要先在manifest中声明一下蓝牙的使用权限 ...bTAdatper.isEnabled()){ /* Intent i = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);...BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE) { Intent i = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE...BluetoothAdapter,我们可以通过BluetoothAdapter.ACTION_REQUEST_ENABLE 提示用户开启,也可以bTAdatper.enable()直接开启蓝牙。
mBtAdapter.isEnabled()){这里可以先使能,可以在REQUEST_DISCOVERABLE处使能,这样的话可以连使能和请求被发现一块完成 // mBtAdapter.enable(...); Intent enableIntent=new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(enableIntent...,REQUEST_ENABLE); } else { show("蓝牙已开启"); }*/ Intent enable = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE...onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode){ /** *case REQUEST_ENABLE...= Activity.RESULT_OK){ show("蓝牙未开启"); } else show("蓝牙已开启"); break;*/ case REQUEST_DISCOVERABLE:
Android蓝牙开发系列目录: https://blog.csdn.net/huangliniqng/article/details/82185635 一、判断是否系统是否支持蓝牙 在使用蓝牙之前,...true; } else { return false; } } 打开方式一: Intent enabler = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE...); startActivityForResult(enabler, 1); 打开方式二: bluetoothadapter.enable() 如果打开蓝牙的同时想设置让自己手机蓝牙多少秒可见可以使用...Intent discoveryIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);//默认是120秒 discoverableIntent.putExtra...filter = new IntentFilter(); filter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED);//蓝牙状态改变的广播
ACTION_REQUEST_ENABLE); startActivityForResult(enableIntent, REQUEST_ENABLE_BT); ...protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == REQUEST_ENABLE_BT...android:name= "android.permission.BLUETOOTH" /> 2.2 创建到其他蓝牙设备的套接字连接 我们应该在一个线程内持续监听套接字流中的数据。...; import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothSocket; /** * 读写蓝牙设备...ACTION_REQUEST_DISCOVERABLE); startActivityForResult(disCoverableIntent,DISCOVERY_REQUEST_BLUETOOTH
mBluetoothAdapter.isEnabled()) { // 弹出对话框提示用户是后打开 Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE...不做提示,强行打开 mBluetoothAdapter.enable(); } 获取手机已经配对的蓝牙设备 // 获取已经配对的设备 Set<BluetoothDevice pairedDevices...<uses-permission android:name="android.permission.BLUETOOTH" / <uses-permission android:name="android.permission.BLUETOOTH_ADMIN..." / //部分手机(如小米等)需要将下面两个权限添加进去,蓝牙功能才能正常使用 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION..." / <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" / 以上这篇android获取附近蓝牙设备并计算距离的实例代码就是小编分享给大家的全部内容了
不过我们都知道,Kotlin才是Android的未来,所以后面的版本中其实我一直都想将PermissionX的代码实现重新改为Kotlin。...android:name="android.permission.REQUEST_INSTALL_PACKAGES" /> 运行一下,效果如下图所示: 支持Android...12蓝牙权限 Android 12在运行时权限方面又有了一些新的变化。...从Android 12开始,过去的蓝牙权限被拆分成了3个新的权限,并且全都是运行时权限: BLUETOOTH_SCAN 用于使用蓝牙扫描附件其他的蓝牙设备 BLUETOOTH_ADVERTISE 用于允许当前的设备被其他的蓝牙设备所发现... 我们仍然像往常一样申请老的蓝牙权限,但是让它们最大只作用到api 30,也就是Android 11系统上。从Android 12开始则启用新的蓝牙权限。
Kotlin来写,点击Finish。...enableBluetooth.launch(Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE)) }...} } 请求权限返回无非就是同意不同意,如果同意了我们就调用 enableBluetooth.launch(Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE...enableBluetooth.launch(Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE))...直接打开蓝牙 enableBluetooth.launch(Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE)) }
允许程序连接到已配对的蓝牙设备。... 允许程序发现和配对蓝牙设备。...mBluetoothAdapter.isEnabled()){ //弹出对话框提示用户是后打开 Intent enabler = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE...); startActivityForResult(enabler, REQUEST_ENABLE); //不做提示,直接打开,不建议用下面的方法,有的手机会有问题。...// mBluetoothAdapter.enable(); } 获取本地蓝牙信息 //获取本机蓝牙名称 String name = mBluetoothAdapter.getName(); //获取本机蓝牙地址
允许程序连接到已配对的蓝牙设备。... 获取可用蓝牙设备 引包 操作蓝牙主要用到的类 BluetoothAdapter...mBluetoothAdapter.isEnabled()){ //弹出对话框提示用户是后打开 Intent enabler = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE...); startActivityForResult(enabler, REQUEST_ENABLE); //不做提示,直接打开,不建议用下面的方法,有的手机会有问题。...// mBluetoothAdapter.enable(); } 获取本地蓝牙信息和已配对设备 连接中的设备不能在搜索回调中获取 只能在以配对设备中获取 //获取本机蓝牙名称 String name
领取专属 10元无门槛券
手把手带您无忧上云