感谢MS在Win10下提供了完整的蓝牙Rfcomm API,这回手机上也能完整实现蓝牙串口的服务器模式了。之前在WP8时代手机上只能实现客户端模式,就是主动连接设备,而不能让设备来主动连接蓝牙串口。而Android上一直可以实现,所以Android版蓝牙串口提供完整的客户端和服务器端模式。现在基于Win10 UWP版的 蓝牙串口 也能实现跟Android版一样的功能了(所以嘛,不是设备不行,WP8对比Win10实在不给力)。

p_ss_20151112_0001

但是!凡事有个但是就不好了。由于Windows的限制,在配对蓝牙设备时如果该设备没有提供串行端口服务,配对后的设备信息里就不会有这个服务了,所以蓝牙串口APP里就会出现查找不到设备的情况。所以在配对设备时一定要先运行 蓝牙串口 ,手机版运行后可以切换到设置里,只要不点击 蓝牙串口 菜单上的退出就没关系。这样配对好蓝牙设备后,对方就认为你有提供蓝牙串行端口服务,在对方的设备上运行 蓝牙串口 时,设备列表里就会出现你的设备了。切记,切记!重要的事情不一定要说三遍^^

还有 蓝牙串口 进入后台后会继续保持连接,要退出的话 点击菜单上的 退出 即可完全退出蓝牙串口!

下载 蓝牙串口 UWP

发现《蓝牙串口》《TCP连接》的十六进制编辑框在输入时还要自己注意添加空格太不智能了,又容易出错。所以就想着在每输入两个字符后自动加入一个空格(两个字符代表一个十六进制数,刚好可以转成一个BYTE),然后删除字符时,可以自动删除空格(不懂怎么表述,运行一下代码就知道了)。

方法:使用EditText的addTextChangedListener接口,并实现TextWatcher。具体实现代码如下:

TextWatcher autoAddSpaceTextWatcher = new TextWatcher() {
	@Override
	public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) {}
 
	@Override
	public void onTextChanged(CharSequence s, int start, int before, int count) {
		if (count == 1) {
			if ((s.length() + 1) % 3 == 0) {
				setText(s + " ");
				setSelection(s.length() + 1);
			}
		}  else if (count == 0) {
			if (s.length() > 0 && s.length() % 3 == 0) {
				setText(s.subSequence(0, s.length() - 1));
				setSelection(s.length() - 1);
			}
		}
	}
 
	@Override
	public void afterTextChanged(Editable editable) {}
};

最后调用addTextChangedListener传入autoAddSpaceTextWatcher即可!赶紧去体验新版《蓝牙串口》和《TCP连接》的十六进制输入吧!

蓝牙串口是蓝牙SPP(串口)通信工具。它可以连接任何支持串行端口模式的蓝牙设备(如手机)。
蓝牙串口特点:
搜索蓝牙设备。
支持蓝牙客户端和蓝牙服务器模式。
键盘视图,可以自定义按键。
可以用来与其他Android手机通信。
可以设置为ASCII或HEX显示模式。
可设置终端或聊天视图。
可以连接到蓝牙MCU。
可以连接到蓝牙调制解调器(大多数手机支持)。

新版变化
1.稳定性兼容性改善
2.新的通知栏图标
3.提升程序性能
4.修复部分BUGS

下载

Google Play  从应用汇下载

蓝牙串口键盘视图

蓝牙串口键盘视图

蓝牙串口的菜单

蓝牙串口的菜单

蓝牙串口主界面

蓝牙串口主界面