我終于解決了這個問題 . 以前我從“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 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));
}
};