如何在android中获取蓝牙耳机设备的信息(特别是耳机设备名称)
How to get information ( specially headset device name ) of bluetooth headset device in android
我正在创建一个应用程序,我需要在其中显示已连接的蓝牙耳机的名称。我的耳机已打开并连接到 android 设备。我正在将 phone 音频路由到耳机,但无法显示连接的耳机名称。
我尝试使用“getName()”方法,但 returns 另一个配对的蓝牙移动设备当前未连接并已关闭。
非常需要建议。
更新
我使用了这段代码。但不幸的是,它 returns 一个当前未连接的 android 蓝牙设备名称,我的耳机仍然连接在那里,我能够路由 phone 音频
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());
我终于解决了这个问题。以前,我使用“BluetoothAdpter”class 中的“getBondedDevices()”方法获得了所有绑定设备。但是我通过使用 class“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));
}
};
我正在创建一个应用程序,我需要在其中显示已连接的蓝牙耳机的名称。我的耳机已打开并连接到 android 设备。我正在将 phone 音频路由到耳机,但无法显示连接的耳机名称。
我尝试使用“getName()”方法,但 returns 另一个配对的蓝牙移动设备当前未连接并已关闭。
非常需要建议。
更新
我使用了这段代码。但不幸的是,它 returns 一个当前未连接的 android 蓝牙设备名称,我的耳机仍然连接在那里,我能够路由 phone 音频
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());
我终于解决了这个问题。以前,我使用“BluetoothAdpter”class 中的“getBondedDevices()”方法获得了所有绑定设备。但是我通过使用 class“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));
}
};