当前位置: 首页 > 知识库问答 >
问题:

Android:如何连接到隐藏的蓝牙设备?

封鸿雪
2023-03-14

我有一个隐藏的蓝牙设备,但我知道它的蓝牙MAC地址。

如何使用Android连接到该设备?

共有2个答案

毋弘光
2023-03-14

我是这样做的:

BluetoothDevice device = mBluetoothAdapter.getRemoteDevice("Some_MAC");
        BluetoothSocket tmp = null;
// Get a BluetoothSocket for a connection with the
        // given BluetoothDevice
        try {
            mBluetoothAdapter.cancelDiscovery();
            Method getUuidsMethod = BluetoothAdapter.class.getDeclaredMethod("getUuids", null);
UUID uuid = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
            int sdk = Integer.parseInt(Build.VERSION.SDK);
            if(sdk >= 10){
                //sdk 2.3?? java.io.IOException: Connection refused
                tmp = device.createInsecureRfcommSocketToServiceRecord(uuid);
            }else {
                tmp = device.createRfcommSocketToServiceRecord(uuid);
            }
            Method m = device.getClass().getMethod("createRfcommSocket", new Class[] {int.class});
            tmp = (BluetoothSocket) m.invoke(device, 1);
            tmp.connect();
} catch (IOException e) {
            Log.e(TAG, "failed: ", e);
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        } catch (NoSuchMethodException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }
庄阿苏
2023-03-14

从这里的文档:http://developer.android.com/reference/android/bluetooth/BluetoothDevice.html

要获得BluetoothDevice,请使用BluetoothAdapter。getRemoteDevice(String)创建一个表示已知MAC地址的设备的字符串

在您刚刚连接到它之后,就像您通过设备发现检索到它一样。

 类似资料:
  • 我想连接第三方蓝牙设备到我的Android Wear手表(三星Gear Live)。我试图找到留档如何做到这一点,但我没有任何运气。所有的搜索,我似乎都认为我想连接到手机上。 有谁知道一个很好的例子来演示如何将蓝牙心率监视器(或其他设备)连接到Android Wear,以便我在手机不存在时保存历史记录?这可能吗?它是否与从手机/平板电脑上执行相同的协议?

  • 我如何获得Android所有已连接蓝牙设备的列表,而不考虑配置文件? 或者,我看到您可以通过BluetoothManager获取特定配置文件的所有连接设备。获取连接的设备。 我想我可以通过ACTION_ACL_CONNECTED/ACTION_ACL_DISCONNECTED监听连接/断开来查看哪些设备连接...似乎容易出错。 但我想知道是否有更简单的方法来获取所有已连接蓝牙设备的列表。

  • 我试图创建一个简单的android应用程序来连接到我的ELM327设备,以获取一些汽车诊断数据。但我无法在我的android手机和我的ELM327设备上设置蓝牙连接。 我的代码很简单,如下所示: } 在mainactivity中,我将首先新建一个Bluetooth类,然后调用Bluetooth.connect(): mBluetooth=新蓝牙();MBluetooth.Connect(); 当我

  • 连接设备 接口说明 用于连接 扫描出来的蓝牙设备。 参数说明 字段 类型 必须? 说明 device RKBLEDevice 是 蓝牙设备 示例代码 Swift: RokidMobileSDK.binder.connect(device: RKBLEDevice) Objc: [RokidMobileSDK.binder connect:device]; 断开设备 接口说明 用于断开已经连接的

  • 连接蓝牙设备 接口说明 接口需传入蓝牙名称(蓝牙address重启后会变) 参数说明 字段 类型 必须? 说明 name String 是 设备名称 举个大栗子 RokidMobileSDK.binder.connectBT(name, new IBTConnectCallBack() { @Override public void onConnectSucceed(BTDevic

  • 我可以在Android中看到蓝牙设备的两种状态。1、配对2。已连接-<我正在尝试在Android系统中使用当前连接的蓝牙设备。但我只从适配器获得配对设备列表。getBondedDevices() 我需要当前连接的设备。我怎么能得到这个。请有人帮我实现这一点。提前谢谢。