2

根据定义,像 Windows Mobile 手机/PDA 这样的移动设备可以在多种位置使用,并且应该相应地进行调整。如果我在家,我希望它切换到我的本地 WLAN,而不是使用 3G 或 GPRS。如果我在开会,我希望它是静音蜂鸣器而不是响亮的铃声。如果我在嘈杂的环境中,我希望铃声进行相应的调整。如果我正在通勤回家,我可能想向我的 SO 发送自动 SMS。

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

  1. 当前的GSM小区
  2. 可用的 WLAN 网络 SSID
  3. GPS 坐标(如果该设备处于活动状态)
  4. 日历状态(在会议中)
  5. 麦克风(嘈杂或安静的环境)
  6. ActiveSync 状态(可能在我的电脑上)

我预计未来几代手机将允许更多种类的位置相关配置和行为。目前,我可能仅限于为自己写一些东西。然而,整合位置数据源并权衡来自不同来源的证据,以了解我在哪里以及我在做什么,这不仅仅是一个应用程序感兴趣的事情,也是最终用户不希望配置为将定义分开的事情几个应用程序。

我发现的最近的问题是关于如何获取移动单元 ID。我猜可以找到其他 API(但欢迎提供任何帮助)。

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

4

4 回答 4

1

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

于 2009-03-17T06:49:59.860 回答
1

在提供有关已发布建议的更多见解时:

地点信息 CodeProject 上对“Deep Cast”的引用利用了谷歌的网络服务,除了手机中的 GPS 硬件(如果存在)之外,还利用蜂窝塔 ID 推断一个人的位置。假设谷歌在蜂窝塔 ID 上具有广泛的覆盖范围,使得该方法明显可靠。这种方法的缺点是不清楚谷歌对使用该服务的人的看法。Google 可能的处置可能包括 (1) 反对其他程序使用此功能 (2) 鼓励开发人员使用该功能或​​ (3) 冷漠(即不限制使用它但也不支持使用它)。冷漠性格的危险在于,在遥远的未来某个时候,谷歌可能会在没有警告的情况下更改服务的界面。

Skyhook Wireless 服务非常可靠。Apple 使用 Skyhook Wireless 作为 iPhone 和 iPod 中的 WiFi 位置。几个月前,Skyhook 扩展了这项服务,以便不再只在 Windows 手机上进行基于 WiFi 的定位,它现在将使用 WiFi、GPS 和蜂窝塔定位。这项服务的缺点是,如果您打算在商业上使用它,则需要考虑许可。由于 .Net Compact Framework 的互操作能力的限制,从 .Net/托管应用程序中使用这个 SDK 最初是一件痛苦的事情。我设法制作了一个 .Net 包装器并将其发布到 Skyhook Wireless 讨论组。

基于位置的提醒

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

环境噪声检测

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

于 2009-03-19T04:39:20.883 回答
0

您可能会对Buddycloud及其API感兴趣。它们允许根据您列出的许多内容进行查询。

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

于 2009-03-16T22:16:56.410 回答
0

对于第 1 - 3 点(至少),有

于 2009-03-17T05:52:00.327 回答