所以,最近我按照这一系列教程进行了http://www.youtube.com/playlist?list=PL2cK5QO_pN1gfEcWZ8tCWUb-WyxAiMyIK 使用蓝牙模块HC-05
连接Arduino与Android我完全按照他的计划,在我的机器人上检测到HC-05的蓝牙模块,但不会配对。红色LED持续闪烁。 如http://mcuoneclipse.com/2013/06/19/using-the-hc-06-bluetooth-module/表示模块上的红色LED指示状态: 眨眼:准备配对 稳定:配对
这是我应该在我的设备名称旁边输出“(已配对)”的代码
receiver = new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (BluetoothDevice.ACTION_FOUND.equals(action)){
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
devices.add(device);
String s = "";
for(int a=0;a<pairedDevices.size();a++){
if (device.getName().equals(pairedDevices.get(a))){
//append
s = "(Paired)";
break;
}
}
listAdapter.add(device.getName()+" "+s+" "+"\n"+device.getAddress());
}else if (BluetoothAdapter.ACTION_DISCOVERY_STARTED.equals(action)){
}else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)){
}else if (BluetoothAdapter.ACTION_STATE_CHANGED.equals(action)){
if (btAdapter.getState() == btAdapter.STATE_OFF){
turnOnBT();
}
}
}
};
相反,我得到一个吐司说设备没有配对
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
// TODO Auto-generated method stub
if (btAdapter.isDiscovering()){
btAdapter.cancelDiscovery();
}
if (listAdapter.getItem(arg2).contains("(Paired)")){
BluetoothDevice selectedDevice = devices.get(arg2);
ConnectThread connect = new ConnectThread(selectedDevice);
connect.start();
}else {
Toast.makeText(getApplicationContext(), "device is not paired", 0).show();
}
}
我错过了什么? 注意: 我在用, 外部电源 模块HC-05带两个芯片(视频上只有一个芯片) Arduino UNO(关于使用Android Pro Mini的视频)
答案 0 :(得分:2)
我找到了自己的答案, 在使用我们自己的Android应用程序进行连接之前,我们必须首先从系统设置&gt; bluetooth&gt;配对它。输入我们蓝牙模块的密码(在我的情况下是1234)
答案 1 :(得分:0)
您还可以通过代码连接hc 05,而不是通过设置进行配对。 你刚才在代码中犯了一个错误: 在onItemClick方法中,你正在检查设备是否已经配对,然后你调用连接线程,如果没有配对,你显示吐司说设备没有配对,但它没有任何意义.. 你应该连接它,如果它不包含“配对”,否则你做一个connectThread的对象,并调用connect方法。 希望这个有效! 如果没有,请告诉我。