在 Android 2.3 上获得移动蜂窝塔定时提前
我需要提前获得移动蜂窝塔定时。
Android 2.3+ 可以吗?
[编辑] 看来时间提前是不可能恢复的了…… 是否有可能知道移动设备和蜂窝之间的距离以及方位?我想我不能在商业应用程序中使用 Google 隐藏地理定位 api ;-) [/编辑]
谢谢
I need to get the mobile cell tower timing advance.
Is it possible on Android 2.3+ ?
[edit]
It seems that it's not possible to retreive the timing advance...
Is it possible to know the distance between the mobile and the cell and the bearing otherwise ? I suppose I can't use the Google hidden geolocation api in commercial application ;-)
[/edit]
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
对于 LTE 技术,已经可以访问定时提前值:请参阅 http ://developer.android.com/reference/android/telephony/CellSignalStrengthLte.html#getTimingAdvance()
For LTE technology there is already an access to Timing Advance values: see http://developer.android.com/reference/android/telephony/CellSignalStrengthLte.html#getTimingAdvance()
目前尚未实现,这将是一项艰巨的任务,因为它依赖于设备。
实际的定时提前只有调制解调器知道,也称为基带处理器 (BP)。调制解调器由设备的构造函数编码,因此无法修改,并且在构造函数和设备之间可能有所不同。
Android 在应用处理器 (AP) 上运行,并使用AT 命令与BP(调制解调器)进行通信。例如,Android内部向调制解调器发送AT命令以发送短信、接听电话……
获得实际时间提前的唯一方法是查询BP(使用AT命令),但是构造函数是否实现了特定的AT命令来获取它由他们决定。不幸的是,几乎没有设备实现它(只有非常旧的设备),因此无法获取此信息。
This is currently not implemented, and it will be a hard task because it is device-dependent.
The actual timing advance is only known by the modem, also called the baseband processor (BP). The modem is coded by the device's constructor and thus cannot be modified, and can differ between constructors and devices.
Android runs on the application processor (AP) and uses AT commands to communicate with the BP (modem). For example, Android internally sends AT commands to the modem to send SMS, receive calls, ...
The only way to get the actual timing advance would be to query the BP (with an AT command), but whether the constructors implement a specific AT command to get it is up to them. Unfortunately almost no devices implement it (only very old ones), so there is no way to get this information.
我认为使用时间提前进行地理定位不是一个好主意,因为它仅与 GSM 网络相关。一旦设备移交给 UMTS 网络,就不再有时间提前。
为什么不使用 http://developer.android.com/guide/ topic/location/obtaining-user-location.html ?
I don't think it's a good idea to use timing advance for geolocation, since it is only relevant on GSM networks. Once the device hands over to UMTS networks, no more timing advance.
Why not use http://developer.android.com/guide/topics/location/obtaining-user-location.html ?
如果您需要天线位置,则不需要提前定时。然后你需要LAC、CID等,它们都是公共AOS API的一部分,然后你可以查询一些公共数据库来获取它们的位置。有数十个 Android 应用程序已经做到了这一点。甚至可以作为 Android 开发人员的示例应用程序。谷歌一下。
然而,由于其他几个原因,GSM 定时提前 (TA) 知识仍然令人感兴趣。因此,如果有人知道如何从 Android 供应商 RIL 提取此信息,请告诉我们。
If you need Antenna location you don't need Timing Advance. Then you need LAC, CID etc. which are all part of the public AOS API, and then you can query some public database for the location of these. There are dozens of Android apps that already does this. Perhaps even as an example app for Android developers. Google it.
However, GSM Timing Advance (TA) knowledge is definitely still of interest for several other reasons. So if someone know how to extract this info from the Android vendor RIL, please let us know.