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

时间:2015-09-03 16:52:34

标签: java android bluetooth android-bluetooth

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

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

非常需要建议。

更新

我使用了这段代码。但不幸的是它返回了一个当前没有连接的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 :(得分:1)

我终于解决了这个问题。以前我用#34; getBondedDevices()&#34;来自&#34;的方法BluetoothAdpter&#34;上课。但我通过使用&#34; getConnectedDevices&#34;解决了这个问题。来自班级的方法&#34; BluetoothProfile&#34;。

我的新代码如下,仅显示连接的蓝牙耳机设备名称,该名称仅连接到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));
    }
};