首页 文章

如何在android中获取蓝牙耳机设备的信息(特别是耳机设备名称)

提问于
浏览
0

我正在创建一个应用程序,我需要显示连接的蓝牙耳机的名称 . 我的耳机已打开并连接到Android设备 . 我正在将手机音频路由到耳机,但我无法显示已连接的耳机名称 .

我尝试使用“getName()”方法,但它返回另一个配对的蓝牙移动设备,该设备当前未连接并关闭 .

需要建议如此糟糕 .

UPDATE

我用过这段代码 . 但不幸的是它返回了一个当前没有连接的android蓝牙设备名称,我的耳机仍然连接,我能够路由手机音频

bluetoothManager = (BluetoothManager)      getSystemService(Context.BLUETOOTH_SERVICE);


        bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();

        bluetoothAdapter.cancelDiscovery();

        Set<BluetoothDevice> getDevices = bluetoothAdapter.getBondedDevices();

        String remoteDevice = null;


        for (BluetoothDevice getDevice : getDevices) {

            //stringBuilder.append(getDevice);


            remoteDevice = getDevice.toString();

        }


        blueToothDevice = bluetoothAdapter.getRemoteDevice(remoteDevice);

    StringBuilder stringBuilder1 = new StringBuilder();

        stringBuilder1.append(blueToothDevice.getName());

1 回答

  • 0

    我终于解决了这个问题 . 以前我从“BluetoothAdpter”类获得了所有绑定设备的“getBondedDevices()”方法 . 但我通过使用“BluetoothProfile”类中的“getConnectedDevices”方法解决了这个问题 .

    我的新代码如下,其中仅显示连接的蓝牙耳机设备名称,该名称仅连接到HEADSET配置文件 .

    bluetoothManager = (BluetoothManager)      getSystemService(Context.BLUETOOTH_SERVICE);
    
    
        bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
    
        bluetoothAdapter.cancelDiscovery();
    
                   bluetoothAdapter.getProfileProxy(this, listener, BluetoothProfile.HEADSET);
    
    public final BluetoothProfile.ServiceListener listener = new  BluetoothProfile.ServiceListener() {
        @Override
    
        public void onServiceConnected(int i, final BluetoothProfile      bluetoothProfile) {
    
    
    
            final TextView txt = (TextView) findViewById(R.id.textView);
    
    
           List<BluetoothDevice> b = bluetoothProfile.getConnectedDevices();
    
    
    
    
            StringBuilder stringBuilder = new StringBuilder();
    
            for(BluetoothDevice getConnectedDevice : b){
    
                stringBuilder.append(getConnectedDevice.getName());
    
    
            }
    
    
        txt.setText(stringBuilder); 
    
    
        }
    
        @Override
        public void onServiceDisconnected(int i) {
            final TextView txt = (TextView) findViewById(R.id.textView);
    
            txt.setText(String.valueOf(i));
        }
    };
    

相关问题