蓝牙耳机不止一种,我所知的一种是a2dp的一种不是a2dp的,a2dp的耳机就是可以听歌的,另外一种不能听歌
对于a2dp的耳机,如果短按一次hook键,系统会当作一个keyevent来处理,走的是发送广播的流程。如果短按多次,或者长按一次hook 键,不会有keyevent,会当作一个类似与“BVRA”的AP命令来处理,处理过程可以参考源码的BluetoothHandsfree.java, 这个时候就收不到广播。
而对于不是a2dp的耳机,无论怎样按按键,都是发送ap命令,不会收到keyevent。
解决方法有两个,一是换个耳机,二是改rom,在蓝牙bsp那部分,无论什么耳机都走keyevent的流程
引入sockjs.js stomp.js
function connect() {
// 建立连接对象(还未发起连接)
var socket =new SockJS("http://192.168.0.167:8081/endpointWisely")
// 获取 STOMP 子协议的客户端对象
stompClient = Stomp.over(socket)
// 向服务器发起websocket连接并发送CONNECT帧
stompClient.connect({},
function (frame) {
// 连接成功时(服务器响应 CONNECTED 帧)的回调方法
console.log('已连接' + frame)
stompClient.subscribe("/topic/response",function (res) {
console.log(res.body)
})
},
// 连接失败时(服务器响应 ERROR 帧)的回调方法
function errorCallBack (error) {
console.log('连接失败' + error)
}
)
}
node.js提供了高效的服务端运行环境,但是由于浏览器端对HTML5的支持不一,为了兼容所有浏览器,提供卓越的实时的用户体验,并且为程序员提供客户端与服务端一致的编程体验,于是socket.io诞生。socket.io设计的目标是支持任何的浏览器,任何Mobile设备。目前支持主流的PC浏览器 (IE,Safari,Chrome,Firefox,Opera等),Mobile浏览器(iphone Safari/ipad Safari/android WebKit/WebOS WebKit等)。socket.io基于node.js并简化了WebSocket API,统一了通信的API。它支持:WebSocket, Flash Socket, AJAX long-polling, AJAX multipart streaming, Forever IFrame, JSONP polling。
socket.io解决了实时的通信问题,并统一了服务端与客户端的编程方式。启动了socket以后,就像建立了一条客户端与服务端的管道,两边可以互通有无。