使用 HERE API 获取我的位置时出现问题(Wifi)[已更新]

2024-01-09

我在我的平板电脑上安装了 HERE 测试产品(这是一款旧的 Android 5.1 平板电脑,没有 GPS 或蜂窝数据,只有 Wifi),并且它可以很好地(大约)使用 Wifi 提供我的位置。

所以我尝试在我的应用程序中进行相同的编程。

下载了 HERE API,获得了我的应用程序名称的免费增值许可证,在我的清单中输入以下行:

<meta-data
    android:name="com.here.android.maps.appid"
    android:value="itkC4uIay69MTXXXXXXX" />
<meta-data
    android:name="com.here.android.maps.apptoken"
    android:value="NdT8laoCmRysyh8XXXXXXX" />

在我的构建中包含 HERE-sdk,并且我的代码编译得很好。

我的 MainActivity.onCreate() 中有代码 [编辑我已按照下面此处支持的建议添加了代码来初始化地图引擎]:

    MapEngine.getInstance().init(this, new OnEngineInitListener() {
        @Override
        public void onEngineInitializationCompleted(Error error) {
            if (error == Error.NONE) {
                Logger.i(Tags.POSITION, "correctly started map engine");
                PositioningManager pm = PositioningManager.getInstance();
                PositioningManager.LocationStatus  ls = pm.getLocationStatus(PositioningManager.LocationMethod.GPS_NETWORK);
                if (ls ==  PositioningManager.LocationStatus.AVAILABLE) {
                    Logger.i(Tags.POSITION, "Positioning is available");
                } else {
                    Logger.w(Tags.POSITION, "Positioning not available right now " + ls.toString());
                }
                pm.start(PositioningManager.LocationMethod.GPS_NETWORK);
            } else {
                Logger.i(Tags.POSITION, "Problem setting up map engine: " + error);
            }
        }
    });

然后我在计时器上每分钟运行一次代码来检查我当前的位置:

        GeoPosition pos = PositioningManager.getInstance().getPosition();
        if (pos == null) {
            Log.w("Positioning", "GeoPosition is Null");
        } else {
            GeoCoordinate coord = pos.getCoordinate();
            Logger.i("Positioning", "Location: Latitude = " + coord.getLatitude() + ", Longitude = " + coord.getLongitude());
            Logger.i("Positioning", "Accuracy = " + pos.getLatitudeAccuracy() + ", " + pos.getLongitudeAccuracy());
        }

当我运行时,我得到这样的日志:

2019-01-27 11:49:31.960 30112-30112/com.company.app I/: [main] INFO  Positioning: correctly started map engine
2019-01-27 11:49:31.961 30112-30112/com.company.app W: [main] WARN  Positioning: Positioning not available right now OUT_OF_SERVICE

然后,每分钟一次

2019-01-27 11:50:30.850 30112-30343/com.company.app W/: [Timer-2] WARN  Positioning: GeoPosition is Null

在平板电脑上的“设置”中,“位置”已打开“打开”,尽管它显示“最近没有应用程序请求位置”

日志不包含错误或警告,清单中请求所有权限

[编辑] 最糟糕的是我的简单测试应用程序(在下面的评论中提到),现在在我添加 MapEngine 的初始化后可以工作。为了回答 HERE 的问题,我现在真的对使用地图不感兴趣,我只想拉出当前的经度和纬度来帮助找到我丢失的平板电脑。

有人知道我做错了什么吗?


我有几个问题要问,答案将帮助我们了解出了什么问题。

  1. 您想显示地图还是仅使用 PositioningManager?
  2. 如果仅使用 PositionManager,您最初会初始化 MapEngine 吗?

如果你不使用地图,你必须做这样的事情,因为PositionManager不初始化MapEngine本身。

ApplicationContext context = new ApplicationContext(getApplicationContext());
MapEngine.getInstance().init(context, new OnEngineInitListener() {

  @Override
  public void onEngineInitializationCompleted(OnEngineInitListener.Error error) {
    if (error == OnEngineInitListener.Error.NONE) {

    } else {

    }
  }
});

更新:github 上还有另一个测试应用程序,可能非常有用,没有使用地图,但使用了位置管理器。希望这可以帮助!https://github.com/heremaps/here-android-sdk-examples/tree/master/speed-limit-watcher https://github.com/heremaps/here-android-sdk-examples/tree/master/speed-limit-watcher

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 HERE API 获取我的位置时出现问题(Wifi)[已更新] 的相关文章

随机推荐

  • 硒下载文件

    我正在尝试制作一个 Selenium 程序来自动下载和上传一些文件 请注意 我这样做不是为了测试 而是为了尝试自动化某些任务 这是我对 Firefox 配置文件的 set preference profile set preference
  • ASP.NET MVC 2.0 JsonRequestBehavior 全局设置

    默认情况下 当操作尝试返回 JSON 以响应 GET 请求时 ASP NET MVC 2 0 现在将引发异常 我知道这可以通过使用 JsonRequestBehavior AllowGet 逐个方法地覆盖 但是是否可以在控制器或更高的基础上
  • .htaccess 将 https 重定向到 http 不起作用

    我正在尝试捕获到我的网站前面的任何 https 流量 因此 https www domain com 被重定向到 http www domain com 然而 其他子域需要重定向到其他地方 在大多数情况下 除了 https gt http
  • 域名指向单个页面

    我试图将域名指向单个页面 并保持域名相同 无重定向 因此 如果用户输入 www domain1 com au gt 将显示原始站点 如果用户输入 www domain2 com au gt 他们会显示 www domain1 com au
  • ubuntu:sem_timedwait 未唤醒 (C)

    我有3个进程需要同步 进程一执行某项操作 然后唤醒进程二并休眠 进程二执行某项操作 然后唤醒进程三并休眠 进程三执行某项操作 唤醒进程一并休眠 整个循环定时运行在 25hz 左右 由于在我的 真实 应用程序中触发进程二之前 外部同步到进程一
  • 使用CodeIgniter从mysql数据库中随机记录

    我在互联网上进行了研究 但找不到任何东西 我有一个 mysql 数据库 并在一个表中记录 我需要在每次页面加载时从该表中获取随机记录 我怎样才能做到这一点 有什么功能吗 欣赏 谢谢 已排序 关联 http www derekallard c
  • 在 Python 或 C++ 中单声道播放 Mp3

    我正在编码音乐播放器 https github com fabiomdiniz Gokya 2 The Super Gokya 在 python 中使用 pyqt 我希望它能够单声道播放 mp3 文件 我已经使用 pygame 完成了这一点
  • SQL 中的日期范围交集分割

    我有一个 SQL Server 2005 数据库 其中包含一个名为 成员资格 的表 表架构为 PersonID int Surname nvarchar 30 FirstName nvarchar 30 Description nvarch
  • 强制自动启动计算机?

    我们知道如何使用 Java 强制关闭计算机 例如 以下代码可以很好地强制关闭 public static void main String arg throws IOException Runtime runtime Runtime get
  • 为什么溢出:隐藏会为内联块元素添加额外的高度?

    In 这个例子 http jsbin com zowejokuluce 4 HTML div div foo bar div div CSS body html div height 100 margin 0 div div display
  • 为什么 std::fill(0) 比 std::fill(1) 慢?

    我观察到一个系统std fill在一个大的std vector
  • 如何在 JAX-WS 中添加响应标头?

    我有一个与此类似的方法 WebMethod public BeanResponse generar WebParam header true mode Mode INOUT name auditoria partName auditoria
  • 如何使用 RSpec 针对真实应用程序开发 Rails3 引擎?

    关于引擎开发以及使用虚拟应用程序进行测试的文章已经有很多 在我们的例子中 我们开发的引擎不是独立的实体 而是依赖于真实的 Rails 3 应用程序 我们仍然希望此代码存在于引擎中 而不是成为应用程序的一部分 因为引擎的工作是从拥有自己的表和
  • 按名称选择特定打印机 VB

    我制作了一个程序 该程序将在启动时运行 要求用户选择他们的默认打印机 该代码显示组合框中所有已安装的打印机 提交按钮会将组合框中选择的打印机设置为该用户的默认打印机 有没有办法只显示包含特定文本的打印机名称 例如 ABC printer1A
  • Python正则表达式选择所有不匹配模式的元素

    我昨天问了类似的问题保留 pandas 系列中带有模式的元素 而不将其转换为列表 https stackoverflow com questions 64958329 keep elements with pattern in pandas
  • Python:如何在 Windows 资源管理器上打开文件夹(Python 3.6.2、Windows 10)

    如果我将要打开的路径存储在名为 Finalpath 的字符串中 如下所示 2 8 电影 英语 虎胆龙威系列 那么我如何在 Windows 资源管理器中打开它 Windows 10 Python 3 6 2 P S 我知道很多人问过这个问题
  • 如何在 Android 中将字节数组写入文件?

    这是我创建文件的代码 public void writeToFile byte array try String path data data lalallalaa txt FileOutputStream stream new FileO
  • WordPress 自定义帖子类型搜索结果页面

    我设置了一个自定义搜索表单来搜索和显示自定义帖子类型的结果 形式为
  • next-auth 中 useSession() 的“加载”返回值是什么?

    我正在编写一个 Next js 项目 并使用 GitHub 和实现身份验证next auth 在以下示例中next auth 有一个电话useSession 它返回两个对象 session and loading 然而 我见过的例子都没有实
  • 使用 HERE API 获取我的位置时出现问题(Wifi)[已更新]

    我在我的平板电脑上安装了 HERE 测试产品 这是一款旧的 Android 5 1 平板电脑 没有 GPS 或蜂窝数据 只有 Wifi 并且它可以很好地 大约 使用 Wifi 提供我的位置 所以我尝试在我的应用程序中进行相同的编程 下载了