You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android平台如何通过编程检测蓝牙Bluetooth是否处于激活状态

Android设备蓝牙激活状态编程检测方案

有多种成熟的实现方案,可根据你使用的开发环境选择对应方法:

Unity开发环境(匹配你给出的定位检测代码的开发场景)

Unity未提供内置的蓝牙状态检测API,可通过调用Android原生接口实现,步骤如下:

  • 首先在项目的AndroidManifest.xml中添加蓝牙权限:
    针对Android 11及以下版本添加:
    <uses-permission android:name="android.permission.BLUETOOTH" android:maxSdkVersion="30" />
    针对Android 12及以上版本添加:
    <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
  • 编写C#桥接代码示例:
/// <summary>
/// 检测蓝牙是否激活
/// </summary>
/// <returns>true=已激活,false=未激活或设备不支持蓝牙</returns>
public bool CheckBluetoothEnabled()
{
    using (AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
    {
        AndroidJavaObject currentActivity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
        AndroidJavaObject bluetoothManager = currentActivity.Call<AndroidJavaObject>("getSystemService", "bluetooth");
        AndroidJavaObject bluetoothAdapter = bluetoothManager.Call<AndroidJavaObject>("getAdapter");
        
        // 设备无蓝牙硬件
        if (bluetoothAdapter == null)
        {
            return false;
        }
        
        return bluetoothAdapter.Call<bool>("isEnabled");
    }
}

使用方式和你给出的定位检测逻辑类似:

if (!CheckBluetoothEnabled())
{
    // 蓝牙未激活
    return;
}

原生Android开发环境

Kotlin实现代码

val bluetoothManager = getSystemService(BluetoothManager::class.java)
val bluetoothAdapter = bluetoothManager.adapter

when {
    bluetoothAdapter == null -> {
        // 设备不支持蓝牙
    }
    !bluetoothAdapter.isEnabled -> {
        // 蓝牙未激活
    }
    else -> {
        // 蓝牙已激活
    }
}

Java实现代码

BluetoothManager bluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);
BluetoothAdapter bluetoothAdapter = bluetoothManager.getAdapter();

if (bluetoothAdapter == null) {
    // 设备不支持蓝牙
} else if (!bluetoothAdapter.isEnabled()) {
    // 蓝牙未激活
} else {
    // 蓝牙已激活
}

注意:部分低版本Android系统可以直接调用BluetoothAdapter.getDefaultAdapter()获取蓝牙适配器,不过官方更推荐通过BluetoothManager获取,兼容性更好。
适配提示:Android 12(API 31)开始,访问蓝牙状态需要申请BLUETOOTH_CONNECT运行时权限,否则会抛出安全异常。

内容的提问来源于stack exchange,提问作者Fenikkel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 04:24:08