Android 蓝牙4.0 Ble开发(一)

这篇博客主要介绍了Android平台上的蓝牙低功耗(BLE)4.0开发,包括BLE简介、相关API、设备分类及作为中央设备的示例应用。作者分享了自己在蓝牙开发过程中的经验和遇到的挑战,旨在帮助其他开发者避免或解决类似问题,并承诺后续将提供外设端的Demo代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一,Ble 4.0简介

低功耗蓝牙,低成本、短距离、可互操作的鲁棒性无线技术,从蓝牙4.0开始支持,Android端是从Android4.3开始支持ble,但是是从android5.0开始支持手机作为外设端开发,在此(5.0)之前只能作为中央设备开发。

二,API

BluetoothAdapter  蓝牙适配器,通过它来获取蓝牙地址、蓝牙名字、绑定设备、扫描模式、蓝牙状态等参数(后面代码有详细说明)
BluetoothLeScanner 蓝牙扫描类
BluetoothDevice 蓝牙设备类
BluetoothGatt 蓝牙通信类,通过这个类来建立通信通道
BluetoothGattService 蓝牙通信通道服务类
BluetoothGattCallback:中央设备回调类。
BluetoothGattServer:外设提供数据类;
BluetoothGattServerCallback:外设回调类
BluetoothGattCharacteracteristic 蓝牙通信通道特征值类
BluetoothGattDescriptor 蓝牙通信通道特征值属性类

一个ble终端可以包含多个Service,一个Service可以包含多个Characteristic,一个Characteristic包含一个value和多个Descriptor,一个Descriptor包含一个value。其中Characteristic比较重要,用的比较多。Descriptor主要对Characteristic进行范围、单位的描述。

三,ble的分类

    中央设备(central):进行扫描,启动连接,在单一或多链路层作为主机。
    外围设备(periphery):广播发送者,可连接的设备,在单一链路层作为从机。
    广播者(Braodcaster):广播发送者,是不可连接的设备。
    观察者(Observer):扫描广播,不能够启动连接。
广播者和观察者不能建立连接。应用:温度传感器和温度显示器。
一个中央可以同时连接多个周边,但是一个周边只能连接一个中央。

四,作为中央设备示例

    1.初始化Ble
private void initBle() {
        //获取蓝牙管理类对象
        BluetoothManager manager = (BluetoothManager) getSystemService(BLUETOOTH_SERVICE);
        //获取蓝牙适配器
        adapter = manager.getAdapter();
        //判断是否支持蓝牙(此处并非是Ble)
        if (adapter == null) {
            Log.d(tag, "该设备没有蓝牙");
            return;
        } else {
            Log.d(tag, adapter.getAddress() //蓝牙地址
            + "\n" + adapter.getName()   //蓝牙名字
            + "\n" + adapter.getBondedDevices()//已匹配的设备
            + + "\n" + adapter.getScanMode() //扫描模式
            + "\n" + adapter.getState());//状态
            //判断蓝牙打开状态如果没打开直接打开
            if (!adapter.isEnabled()) {
                adapter.enable();
         }
//当然此处也可采用,通过用户点击来打开蓝牙
// Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);            //enableBtIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//context.startActivity(enableBtIntent);
}
//判定是否支持Ble
if(!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) {
            Toast.makeText(this, "该设备上不支持BLE", Toast.LENGTH_SHORT).show();
} else {
     Toast.makeText(this, "该设备上支持BLE", Toast.LENGTH_SHORT).show();
 }
     mac.setText("本机的蓝牙mac\n" + adapter.getAddress());
 }
2.扫描

    // lescan开始扫描ble设备
private void startLeScan(){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        Log.e(tag,"start bleScan");
        //获取扫描对象       mBluetoothLeScanner=adapter.getBluetoothLeScanner();
        //扫描结果的集合
 List<ScanFilter>bleScnFilter=new ArrayList<>();
 bleScnFilter.add(new ScanFilter.Builder().setDeviceAddress(address).build());
 //扫描设置
ScanSettings bleScanSetting= new ScanSettings.Builder().build();
//开始扫描
mBluetoothLeScanner.startScan(null, bleScanSetting, mBleScanCallback);
}else{
        Log.e(tag,"build not support LeScan");
}
}
3.扫描回调
    @Override
    public void onBatchScanResults(List<ScanResult> results) {
        super.onBatchScanResults(results);
    }
//扫描结果回调方法
    @Override
    public void onScanResult(int
<think>嗯,用户想在Windows安装Nexus仓库管理器,我得想想怎么回答。首先,我得回忆一下安装Nexus的步骤,可能需要JDK作为前置条件。记得Nexus需要Java环境,所以得确认JDK的版本,比如是否要JDK 8或者更高版本。然后,用户需要下载NexusWindows版本,官网应该提供zip包。解压之后,可能需要配置环境变量,或者通过命令行安装服务。 然后安装步骤应该包括下载、解压、配置环境变量、安装服务、启动服务这些步骤。注意事项可能有防火墙设置,端口冲突,还有初始密码的位置。记得Nexus默认端口是8081,要检查是否被占用。另外,数据目录的位置和备份也很重要,需要提醒用户。 用户可能遇到的问题包括服务启动失败,可能是Java路径不对或者权限不足。还要注意初始登录后要修改密码,以及如何访问管理界面。可能需要引用一些参考资料,比如Jenkins插件管理或者Git初始化的步骤,不过这些引用好像不太相关,可能需要调整。要确保步骤清晰,用中文,并且语法正确,符合用户的系统级指令要求。</think>### 在 Windows 操作系统上安装 Nexus 仓库管理器的步骤 #### **前置条件** 1. **安装 Java 环境** Nexus 3.x 需要 JDK 8 或更高版本。可通过以下命令验证是否已安装: ```bash java -version ``` 若未安装,需从 [Oracle JDK](https://www.oracle.com/java/technologies/downloads/) 或 [OpenJDK](https://adoptium.net/) 下载并安装[^2]。 2. **系统权限** 确保当前用户具有管理员权限,以便安装服务及修改系统配置。 --- #### **安装步骤** 1. **下载 Nexus** 访问 [Nexus 官方下载页面](https://www.sonatype.com/products/repository-oss-download),选择 Windows 版本(`.zip` 格式)并下载。 2. **解压文件** 将下载的压缩包解压到目标目录(如 `C:\nexus`),解压后会生成两个文件夹: - `nexus-<version>`:包含运行文件 - `sonatype-work`:存储数据文件(仓库、日志等) 3. **配置环境变量(可选)** 如需通过命令行快速访问,可将 Nexus 的 `bin` 目录(如 `C:\nexus\nexus-<version>\bin`)添加到系统环境变量 `PATH` 中。 4. **安装 Nexus 服务** 以管理员身份打开命令提示符,执行以下命令: ```bash cd C:\nexus\nexus-<version>\bin nexus.exe /install ``` 5. **启动服务** ```bash nexus.exe /start ``` 服务启动后,默认监听端口 `8081`。可通过浏览器访问 `http://localhost:8081` 进入管理界面[^1]。 6. **初始化配置** - **登录**:默认管理员账号为 `admin`,初始密码位于 `sonatype-work\nexus3\admin.password`。 - **修改密码**:首次登录后需重置密码。 - **配置存储路径**:在管理界面中可调整数据存储目录[^3]。 --- #### **注意事项** 1. **端口冲突** 若端口 `8081` 被占用,需修改 `nexus-<version>\etc\nexus-default.properties` 中的 `application-port` 参数。 2. **防火墙设置** 确保防火墙允许 `8081` 端口的入站连接。 3. **数据备份** 定期备份 `sonatype-work` 目录以防止数据丢失。 4. **服务管理** 使用 `nexus.exe /stop` 停止服务,`nexus.exe /uninstall` 卸载服务。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值