Android-列出已连接的蓝牙设备

Android-列出已连接的蓝牙设备,android,bluetooth,Android,Bluetooth,我有一个应用程序,可以通过蓝牙收听语音输入(如果可用),如果不可用,则可以通过手机麦克风读取。我似乎找不到方法来检查他们的蓝牙设备是否已经连接(不仅仅是配对)。有什么建议吗?尽管如此,还是试试这个方法 以下几点对我来说很有用(API>=18): final BluetoothManager BluetoothManager=(BluetoothManager)getSystemService(Context.BLUETOOTH\u服务); 列出gattServerConnectedDevices

我有一个应用程序,可以通过蓝牙收听语音输入(如果可用),如果不可用,则可以通过手机麦克风读取。我似乎找不到方法来检查他们的蓝牙设备是否已经连接(不仅仅是配对)。有什么建议吗?

尽管如此,还是试试这个方法


以下几点对我来说很有用(API>=18):

final BluetoothManager BluetoothManager=(BluetoothManager)getSystemService(Context.BLUETOOTH\u服务);
列出gattServerConnectedDevices=bluetoothManager.getConnectedDevices(BluetoothProfile.GATT_服务器);
用于(蓝牙设备:gattServerConnectedDevices){
Log.d(“标记”,“找到连接的设备:”+device.getAddress());
}

可以通过服务列出已连接的耳机设备


你能举个例子吗。我尝试的所有方法都使用广播接收器,但我想在onCreate method.FYI中查询,这只适用于BluetoothProfile.GATT和BluetoothProfile.GATT_服务器。您有解决方案吗。我正在寻找相同的,请提供答案。不,对不起,我从来没有得到一个解决方案。这只是为关贸总协定的设备。我需要耳机,蓝牙耳机等,我可以得到我的ble鼠标从这个api,它为我工作。
final BluetoothManager bluetoothManager = (BluetoothManager)getSystemService(Context.BLUETOOTH_SERVICE);
List<BluetoothDevice> gattServerConnectedDevices = bluetoothManager.getConnectedDevices(BluetoothProfile.GATT_SERVER);
for (BluetoothDevice device : gattServerConnectedDevices) {
    Log.d("Tag", "Found connected device: " + device.getAddress());
}
   btAdapter.getProfileProxy(context, object : BluetoothProfile.ServiceListener {
            override fun onServiceDisconnected(p0: Int) {
                //
            }

            override fun onServiceConnected(p0: Int, headset: BluetoothProfile?) {
                headset?.connectedDevices?.forEach {
                    Timber.d("${it.name} ${it.address}")
                }
            }
        }, BluetoothProfile.HEADSET)