用于位置感知移动应用的框架?

时间:2009-03-16 22:06:25

标签: windows-mobile compact-framework mobile frameworks gps

根据定义,Windows Mobile手机/ PDA等移动设备可以从多种位置使用,并且应该相应地进行调整。如果我在家,我希望它切换到我的本地WLAN,而不是使用3G或GPRS。如果我正在参加会议,我希望它是在静音蜂鸣器而不是一个响亮的铃声。如果我在嘈杂的环境中,我希望铃声能够相应调整。如果我要回家,我可能想发送一条自动短信到我的SO。

我可能会使用许多数据源来确定我所处的环境和类型:

  1. 当前的GSM小区
  2. 可用的WLAN网络SSID
  3. GPS坐标(如果该设备处于活动状态)
  4. 日历状态(在会议中)
  5. 麦克风(嘈杂或安静的环境)
  6. ActtiveSync状态(可能在我的电脑上)
  7. 我希望未来几代手机允许更多种类的依赖于位置的配置和行为。现在,我可能只限于为自己写点东西。然而,整合位置数据源和来自不同来源的关于我在哪里以及我在做什么的权衡证据是不止一个应用程序会感兴趣的东西,以及最终用户不希望配置为分离定义的东西。几个申请。

    我发现的nearest question是关于如何获取移动小区ID的。其他API可以找到,我想(但欢迎任何帮助)。

    是否有任何框架或想法可以帮助我集成这些数据源,让用户配置环境,并在位置或情况发生变化时触发事件?我应该如何根据多个来源的证据来代表一个地点?您是否可以快速链接到可以帮助我的适用API和组件?最好是CF(而不仅仅是Windows XP)。

4 个答案:

答案 0 :(得分:1)

This是Code Project中一篇非常有趣的文章,介绍了如何检索CellID然后将其映射到坐标。

答案 1 :(得分:1)

提供有关已发布建议的更多信息:

位置信息 CodeProject上对“Deep Cast”的引用利用Google的网络服务,除了手机中的GPS硬件(如果有)外,还可以从Cell Tower ID推断出一个位置。据推测,Google对手机信号塔ID的覆盖范围很广,使该方法可靠。这种方法的缺点是,目前尚不清楚谷歌对使用该服务的人的观点是什么。谷歌可能的处置可能包括(1)反对其他程序使用的这种功能(2)鼓励开发人员使用该功能或​​(3)冷漠(即不限制使用它但不支持使用它)。冷漠处置的危险在于,在遥远的未来,谷歌可以在没有警告的情况下将界面更改为服务。如果您打算出于商业原因制作节目,那么您真的希望明确Google的处理方式。

Skyhook Wireless服务非常可靠。 Apple使用Skyhook Wireless作为iPhone和iPod中的WiFi位置。截至几个月前,Skyhook对该服务进行了扩展,以便不再仅在Windows Mobile Phones上使用基于WiFi的位置,而是使用WiFi,GPS和Cell Tower位置。这项服务的缺点是,如果您计划在商业上使用它,您将需要考虑许可。由于.Net Compact Framework的互操作能力有限,最初使用来自.Net /托管应用程序的SDK很痛苦。我设法创建了一个.Net包装器并将其发布到Skyhook Wireless讨论组。

基于位置的提醒

几个月前,有一篇关于基于位置的提醒的MSDN文章。有关详细信息,请参阅http://msdn.microsoft.com/en-us/magazine/2009.01.wm6gps.aspx

上的文章和示例代码

环境噪音检测

几年前有一个MSDN杂志代码示例演示了如何根据环境噪音水平自动调整手机的音量。有关详细信息,请参阅http://msdn.microsoft.com/en-us/magazine/cc163341.aspx

答案 2 :(得分:0)

您可能会对

Buddycloud及其API感兴趣。它们允许基于您列出的许多内容进行查询。

此外,您可以使用蓝牙来检测您与他人的距离等。有趣的东西。

答案 3 :(得分:0)