我正在创建一个应通过蓝牙连接到特定设备的应用程序。
无论设备是否已配对,我都希望我的应用程序与此设备连接。
现在我有这个
private void findDevice() {
Set<BluetoothDevice> pairedDevices = bluetoothAdapter.getBondedDevices();
if (pairedDevices.size() > 0) {
for (BluetoothDevice device : pairedDevices) {
if (device.getName().equals(DEVICE_NAME)) {
bluetoothDevice = device;
deviceFound = true;
break;
}
}
}
}
但是此功能仅连接到配对的设备。如果我的设备尚未配对,我想将其配对。不知道该怎么做。
有人可以给我任何建议吗?
首次请求BLUETOOTH_ADMIN
权限。
然后使您的设备可发现:
private void makeDiscoverable() {
Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 300);
startActivity(discoverableIntent);
Log.i("Log", "Discoverable ");
}
然后创建一个 BroadcastReceiver 来监听系统中的动作:
private BroadcastReceiver myReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Message msg = Message.obtain();
String action = intent.getAction();
if(BluetoothDevice.ACTION_FOUND.equals(action)){
//Found, add to a device list
}
}
};
并通过注册以下 BoardcastReceiver 开始搜索设备:
private void startSearching() {
Log.i("Log", "in the start searching method");
IntentFilter intentFilter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
BluetoothDemo.this.registerReceiver(myReceiver, intentFilter);
bluetoothAdapter.startDiscovery();
}
设备从 BroadcastReceiver 进入列表后,从列表中选择设备,并createBond()
执行以下操作:
public boolean createBond(BluetoothDevice btDevice)
throws Exception
{
Class class1 = Class.forName("android.bluetooth.BluetoothDevice");
Method createBondMethod = class1.getMethod("createBond");
Boolean returnValue = (Boolean) createBondMethod.invoke(btDevice);
return returnValue.booleanValue();
}
Then use your code above to manage with bonded devices.
我正在Visual Studio 2015中用C语言为运行Windows IoT Core的Raspberry PI 2设备开发。 对于我的应用程序,我需要配对和取消配对蓝牙设备 我可以获得配对/未配对/所有蓝牙设备的列表吗<类似于内置管理网站的蓝牙页面(http://[设备IP]:8080/Bluetooth.htm) 我找到了一个例子(https://github.com/Microsoft/
deviceName String deviceId String
我在连接时遇到问题。起初它有效,而不是不起作用,除非我取消配对设备。我已经得到了所有可能发生的异常,套接字关闭,管道关闭,连接被拒绝,端口已经在使用中,等等。 我知道android 4.2之前版本的蓝牙存在问题(https://code.google.com/p/android/issues/detail?id=37725). 我在连接这些设备时遇到问题的设备: Htc one(Android4.
是否可以自动连接到蓝牙低能耗(BLE)设备? Android文档表明[](https://developer.android.com/reference/android/bluetooth/BluetoothDevice.html#connectGatt(android.content.Context,boolean,android.bluetooth.BluetoothGattCallback)
我正在尝试枚举所有与我的设备配对的蓝牙设备。在设置中,我可以查看配对的设备,但以下代码不返回任何项目: 我看过这篇和其他使用这种方法的帖子,但我似乎无法让它发挥作用。 我在Manifest.xml有以下权限: 此外,如果我将其中一个已配对的设备置于发现模式并进行扫描,则该设备会以已配对的状态返回。如果我检查: 从扫描中,它返回true。 我做错了什么或不理解什么?
有没有办法在Android上ping蓝牙设备?Android中没有连接或配对蓝牙设备,但我事先知道设备的MAC地址和PIN。我试图实现的是ping一个MAC地址列表,看看是否有任何设备在范围内。