问题1,这个push是在服务器端实现,当用户发布新状态带上gps信息,服务器根据经纬度加上一个简单的距离计算公式,再向周围的人群进行push。
不开应用无法获取gps的,不过gps支持后台更新,但不能上传到服务器,你能做的就是当用户打开或者程序到前台时向服务器更新个gps。后台只支持gps voip audio。
你想拿的是当前的用户,这个你这边自己定,比如你定1小时内更新在这个位置的用户为当前就行,拿到范围内的用户再根据时间筛选。这类信息本来就不是实时的,如果时im类型app,那就心跳包,更准确。
问题2,不可能不开应用更新gps。你可以在用户打开一次应用又进入后台或者关闭应用后,来进行push。