android - 离线地图在 Heremaps API (Android) 上的 SDCard 上时 MapEngine 初始化缓慢
问题描述
我在这里遇到了很大的问题:
我想在我的设备上拥有所有欧洲地图,但它们没有足够的内部存储空间来存储它们,所以我使用 SD 卡来存储它们。
问题是在初始化 MapEngine [MapEngine.getInstance().init(...)] 时,在旧设备(Honor 5X [huawei KIW-L24] 为android 6.0.1 的旧设备,但它非常随机,通常需要大约 23 秒,但有时可能需要 2 秒,其他可能需要 1 分半钟。
因此,我尝试在 android studio 上分析应用程序,但它卡在方法 com.nokia.maps.MapServiceClient.startServer 上,如附图所示:
我尝试将手机恢复出厂设置,甚至尝试过其他荣耀 5x 手机,但同样的问题正在发生。
在 logcat 上,我在 OnEngineInitListener 启动之前收到此错误(连接 WiFi、断开连接和禁用 WiFi):
24442-24442/net.gottsolutions.gps E/WifiManager: WifiServiceMessenger == null
另一方面,我在诺基亚 4.2 (Android 9.0) 上测试了相同的应用程序和相同的 SDCard,启动该方法大约需要 2 秒。
所以我决定用 SDCard 上的欧洲地图测试你的应用程序(Here WeGo),我遇到了一个类似的问题,比如我正在开发的 GPS。
附视频:
另一个问题是在初始化 MapEngine 时它会阻塞 UI,即使它是在另一个线程或后台服务上启动的。
我使用的 SDCard 是 Kingston 32GB UHS I。
MapEngine.getInstance().init(sdkAppContextApplicationContext, error ->
{
if (error == OnEngineInitListener.Error.NONE)
{
if (ISDKMapEngineListener != null)
ISDKMapEngineListener.onSDKReady();
} else
{
Log.e("MapEngine", "Failed to initialize MapEngine: " + error);
}
});
解决方案
您能否尝试在 turnOnWifi() 中传递上下文,例如来自 MainActivity 的 turnOnWifi(sdkAppContextApplicationContext)
wifi_manager =(WifiManager)sdkAppContextApplicationContext.getSystemService(Context.WIFI_SERVICE);
wifi_manager.setWifiEnabled(true);
Thread.sleep(2000L);
推荐阅读
- vbscript - 需要使用 VBScript/ASP 经典从图形文件中读取宽度/高度
- python - 减去 2 个 Pandas 数据帧检索“NaN”
- json - 无法获取 json 节点值
- c# - 异步/同步实现中的 HttpClient 返回 WaitingForActivation
- arrays - Swift - 如何在 stackview 中创建动态标签?
- android - 如何修复 IntelliJ IDEA 中的“渲染问题”、“java.lang.NoClassDefFoundError: sun/misc/Cleaner”?
- rust - 为什么在 .map 中执行的闭包不会改变捕获的值?
- android - 单击第一个和第二个活动的文本,应该对第三个活动可见
- python - python用完整列表填充列表中缺少的条目
- c++ - 无法在 Netbeans (Cygwin) 上使用 libbgi.a 编译 C++ 程序