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

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

刘野
2023-03-14

我正在创建一个应用程序,需要显示连接的蓝牙耳机的名称。我的耳机已打开并连接到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个答案

袁晟
2023-03-14

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

我的新代码如下,它仅显示仅连接到耳机配置文件的已连接蓝牙耳机设备名称。

   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));
    }
};
 类似资料:
  • 我正在尝试从与Android设备配对的蓝牙耳机中捕获音频。 以下是相关代码: 清单要求权限: WRITE_EXTERNAL_STORAGE RECORD_AUDIO 互联网 MODIFY_AUDIO_SETTINGS BROADCAST_STICKY 蓝牙 BLUETOOTH_ADMIN 每个应用程序的典型过滤LogCat输出是: 初始化BT 启动蓝牙 BT可以从麦克风录音吗?true 一切初始化

  • 我正在尝试构建一个应用程序,以获取当前连接的蓝牙耳机的电池电量。此应用程序可以在没有内置此功能的手机上使用 在stackoverflow上搜索时,我发现如何在android中获取蓝牙耳机电池状态这个问题。我使用BluetoothProfile获得了当前连接的蓝牙耳机。耳机情景模式 但是在BluetoothDevice类型的device对象中,我看不到任何获取蓝牙耳机电池电量的方法或属性 我可以获取

  • 所需功能: 它有点像iPhone本机手机应用程序。当有蓝牙/耳机连接到iPhone时,扬声器按钮(通常只有扬声器/手机切换)将显示所有可用的音频输出设备。默认使用蓝牙。用户可以选择其他设备播放声音。 问题: > 如何更新路由并将音频输出设置为所选设备? 请注意,AudioSessionGetProperty AND AudioSessionSetProperty的现有解决方案可能并不理想,因为iO

  • 我正在尝试获取连接到运行Android Oreo的Android手机的设备的名称。 过去两天我一直在寻找答案,但没有一个奏效。建议主要返回错误 问题是,有没有办法进行查询以返回连接的蓝牙设备? 这些是不起作用的链接和建议: IOException:读取失败,套接字可能关闭-Android 4.3上的蓝牙 在Android中,如何获取已连接蓝牙设备的配置文件 列出已连接的蓝牙设备 我可以获得有关设备

  • 有没有办法在Android上ping蓝牙设备?Android中没有连接或配对蓝牙设备,但我事先知道设备的MAC地址和PIN。我试图实现的是ping一个MAC地址列表,看看是否有任何设备在范围内。

  • 问题内容: 如何在使用Java的android中显示蓝牙设备名称?有什么代码可供我参考吗? 问题答案: 下面的代码将为您提供蓝牙名称,类型为。