【问题标题】:How obtain geo location of Android phone in a servlet?如何在 servlet 中获取 Android 手机的地理位置?
【发布时间】:2011-02-13 22:12:57
【问题描述】:

我在我的 Android 手机上安装了一个带有 i-Jetty 的 servlet 容器应用程序,并创建了一个交换 GPS 位置的 servlet。我知道创建一个 Android 应用程序会更容易,但最终我想在任何设备上使用它,所以 servlet 更好。

问题是我不知道如何在我的 servlet 类中获取 Android 手机的 GPS 位置。有人有想法吗?

【问题讨论】:

  • “但最后我想在任何设备上使用它,所以 servlet 更好”——你的证明是,究竟是什么?
  • 想象一下我可以在计算机或其他手机(如 iphone、windows mb 或 sybiam)上使用这个 servlet。

标签: android servlets geolocation


【解决方案1】:

我认为如果不创建原生 android 应用程序,您将无法访问手机的内部 gps 传感器。如果创建一个 android 应用程序是不可能的,你仍然可以通过 ip 地址粗略估计你的坐标。 虽然这样做的缺点是要么在应用程序中实现您自己的 ip 数据库(相当大 - 可从例如:http://www.maxmind.com/app/geolitecity 获得)或依赖第三方服务。

【讨论】:

  • 有希望。我从未使用过 i-jetty,但项目网站说“为 i-jetty 开发的 webapps 可以访问 Android API”。
  • Geo ip 是不可能的,因为这里的互联网电话没有真正的 IP 地址......我在想,因为它是一个内部 servlet,是否可以运行命令行来获取这个 gps 位置
  • 您的手机没有获得真实的 IP 地址,这是真的。但由于它是您的手机提供商提供的地址,因此解析 ip 仍将指向正确的国家/地区。
【解决方案2】:

正如@Guido 所说,i-jetty 项目网站说“为 i-jetty 开发的 webapps 可以访问 Android API 因此,您必须添加要从 android 使用的导入并调用您需要的函数。我只测试获取联系人,但 gps 位置也应该可以工作。

ps:您只能在 android mobile 上测试 servlet,否则您将遇到导入问题。

【讨论】:

    【解决方案3】:

    用户群仍然很少,因为我猜这里没有详细的答案。

    您当然可以从您的 web 应用程序访问 android 内部,否则 i-jetty 将没有多大意义。查看 hello world 示例,该示例展示了如何从 web 应用程序中访问 android 上下文。

    我认为使用 i-jetty 的一个主要缺点是,您必须将其编译为所需的任何权限。例如,如果你想访问蓝牙,你不能只让你的 webapp 使用它(即使你可以拨打电话),但你必须在 i-jetty 应用程序 AndroidManifest 中包含使用蓝牙的权限。

    因此,如果您仍想以 i-jetty 的方式执行此操作,请下载源代码,查看 hello world webapp,使用清单中设置的适当权限编译 i-jetty,并从网上复制一些 gps 示例使用您的 webapp 在创建时传递的 android 上下文进入您的 webapp。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-29
      • 1970-01-01
      • 1970-01-01
      • 2011-10-03
      • 1970-01-01
      • 1970-01-01
      • 2012-01-26
      相关资源
      最近更新 更多