微信摇一摇的工作原理是什么?

刚开始还以为摇一摇这个只是个噱头,后来和坐在一起的朋友测试,还真能摇到一起。很想知道这个匹配机制的原理是什么?它是如何实现的?

推荐  (0) | 19人关注关注
11个答案
15 0

1、“摇一摇”功能,用的是“加速度”传感器。当传感器检测到你的手机正在摇动,就会向附近的手机基站发出请求。
2、附近信号最好的手机基站接收到你的请求,(距离在50~100米内)。例如,这个基站叫W203000,所有的手机基站都是唯一编号的,可以通过它的编号,查出该手机基站空间的物理地址。
3、该手机基站所处的位置,就是你现在的位置,会发送到微信后台。
4、同时检测到多个人在一个位置。微信就把你附近的人推送给你。

10 0

我觉得你说实际上是三件事,摇一摇、定位、匹配

先说摇一摇,摇一摇仅仅是一种触发方式,和定位技术无关,用户仅仅是通过这种动作触发了一个程序(该程序上传用户的所在位置,并匹配其他用户),它真的只是一个噱头。

其次是定位,目前移动互联网的定位方式,我个人认为主流是混合定位,比如GPS+基站+Wi-Fi热点。首先这种混合定位是有优先级的,比如优先按照GPS定位(因为GPS最准),其次,多重定位可以让结果更准确。这三种定位方式大概是这样:
1.GPS,通过GPS卫星确定用户位置,要求在室外,上方无遮挡,无严重干扰,误差最精确可以到几米。
2.基站定位或者叫小区定位,用手机和几个附近的基站确定用户位置,用信号来回的速度来确定距离,几个距离取交点,误差在大城市中可以到几十米一百米,在荒野外就差老远了。
3.Wi-Fi热点定位,就把Wi-Fi热点看成是一种基站就好了,它同样具有唯一ID,有人(或技术公司)采集wifi接入点的位置信息(具体是怎么做的呢?我其实不是很系统的了解,斗胆举例吧,比如宽带IP,还有一种笨办法,就是像Google街景一样开着车满街转悠查询每个热点在数据库里记录的坐标)。主要在大城市有效。

最后是匹配,你安装的微信叫客户端,在遥远的机房,还有一个服务器端(云端)。所有人“摇一摇”之后,他们的位置信息就全部上传到服务器端,然后把和你处在一定距离内的、在短时间内也摇过的人的信息,推送给你。

不知道这么说你能明白不?

2 0

yhz学物理的IT工程师

2012-04-17 17:46
支持者: 梁兵兵 Jokies

无非就是摇的时候上传你的手机号、基站信息和GPS信息(如果能拿到的话)。
然后服务器立刻计算在收到你摇的请求之前N秒内也收到的摇的信息,然后按照距离做匹配,再返回结果而已。

1 0

傅里叶变黄油猫软件工程师,应用数学专业

2013-04-13 09:28
支持者: yaodi

1)调用操作系统的“响应摇动”功能,操作系统接收重力感应器的信号并识别人手摇动。
2)然后调用系统定位功能,获取坐标并上传到服务器。
3)服务器再对比在一定时间内(例如10秒内)一定距离内(例如500米内)调用这个功能的用户,并发给每一个使用者。

PS:在iOS中,“基站定位”是定位时操作系统的行为,app本身不被允许私自获取基站信息并上传,即使代码能实现,也会因为调用不开放的api而被苹果喀嚓掉。Android中多半也不会直接用基站信息匹配。

1 0

架構夢想程序猿 代码格式化洁癖 理想主义洁癖 等

2013-04-14 10:17
支持者: 萱萱88

select *
from 摇摇表
where
用户='' --你的用户
and 摇的时间 between '' and '' --应该考虑延迟吧
order by 基站距离

0 0

那微信也可以显示个人GPS信息喽???

0 0

现在摇一摇可以识别歌曲,这个是什么呢?

0 0

oT_To建筑师 B.Arch

2013-04-14 15:41

原理是优先使用手机GPS信息,然后才是用基站信息三角定位。
安卓有软件可以随意伪造自己的GPS信息的,这样微信读取到的也是伪造的GPS,就可以随便摇了

0 0

Professor_X脊索动物门哺乳纲灵长目人科人属程序猿

2013-04-14 21:41

摇一摇功能的实现运用了加速度传感器,通过监测到的数值和一个算法来判断是否为摇动。详细请研读Android手机上实现的代码,可以参看我们的开源项目:
https://github.com/PaperAirplane-Dev-Team/Music-Share-Android/blob/master/src/com/paperairplane/music/share/ShakeDetector.java

0 0

对着电视摇一摇就知道是什么电视节目是什么原理?

0 0

这是微信摇一摇的后台设置,你看了就知道了:

查看更多

添加回答

登录 后回答问题,你也可以用以下帐号直接登录

相关问答

关于我们 加入果壳 媒体报道 帮助中心 果壳活动 家长监控 免责声明 联系我们 移动版 移动应用

©果壳网    京ICP证100430号    京网文[2018] 6282-492号    新出发京零字第朝200003号     京公网安备11010502007133号

违法和不良信息举报邮箱:jubao@guokr.com    举报电话:18612934101    网上有害信息举报专区    儿童色情信息举报专区