目前我正试图在我的Nexus 7(2012)上使用Android 4.3(Build JWR66Y,我猜第二次4.3更新)打开BluetoothSocket时遇到一个奇怪的异常.我已经看到了一些相关的帖子(例如/sf/ask/955386141/),但似乎没有提供此问题的解决方法.此外,正如在这些线程中所建议的那样,重新配对没有帮助,并且不断尝试连接(通过愚蠢的循环)也没有任何效果.
我正在处理嵌入式设备(noname OBD-II车载适配器,类似于http://images04.olx.com/ui/15/53/76/1316534072_254254776_2-OBD-II-BLUTOOTH-ADAPTERSCLEAR-CHECK-ENGINE-灯光与你的电话-Oceanside.jpg).我的Android 2.3.7手机连接没有任何问题,同事的Xperia(Android 4.1.2)也可以使用.另一个Google Nexus(我不知道'One'或'S',但不是'4')也因Android 4.3而失败.
这是连接建立的片段.它在自己的Thread中运行,在Service中创建.
private class ConnectThread extends Thread {
private static final UUID EMBEDDED_BOARD_SPP = UUID
.fromString("00001101-0000-1000-8000-00805F9B34FB");
private BluetoothAdapter adapter;
private boolean secure;
private BluetoothDevice device;
private List<UUID> uuidCandidates;
private int candidate;
protected boolean started;
public ConnectThread(BluetoothDevice device, boolean secure) {
logger.info("initiliasing connection to device "+device.getName() +" / "+ device.getAddress());
adapter = BluetoothAdapter.getDefaultAdapter();
this.secure = secure;
this.device = device;
setName("BluetoothConnectThread");
if (!startQueryingForUUIDs()) {
this.uuidCandidates = Collections.singletonList(EMBEDDED_BOARD_SPP);
this.start();
} …Run Code Online (Sandbox Code Playgroud) 我可以在Android中的蓝牙设备中看到两种状态.1.配对2.已连接.-
我正在尝试在Android中获取当前连接的蓝牙设备.但我只需要配对设备列表,adapter.getBondedDevices();我需要当前连接的设备.我怎么能得到这个.请有人帮助我实现这一目标.提前致谢.
在这里得到了很多答案,我可以在a的帮助下构建连接的蓝牙设备列表BroadcastReceiver.现在我的问题是如何知道哪个设备支持哪个配置文件.我希望能够根据配置文件选择设备,例如,获取当前连接的设备及其配置文件的列表,然后选择其中一个.如果我有BluetoothDevice的实例,我不知道如何获得这样的信息.
在此页面上有一些代码说明如何使用蓝牙耳机配置文件:http://developer.android.com/guide/topics/connectivity/bluetooth.html#Profiles.但它并没有解决我的问题.如果您认为我遗漏了任何东西,请帮助我并指出.
非常感谢提前.
无论个人资料如何,如何获取Android的所有已连接蓝牙设备的列表?
另外,我看到您可以通过BluetoothManager.getConnectedDevices获取特定配置文件的所有连接的设备。
而且我想我可以通过ACTION_ACL_CONNECTED / ACTION_ACL_DISCONNECTED侦听连接/断开连接来查看连接了哪些设备...似乎容易出错。
但是我想知道是否有一种更简单的方法来获取所有已连接的蓝牙设备的列表。