android - 如果华为设备同时支持 GMS 和 HMS 核心,那为什么 HMS 核心不工作?
问题描述
我正在为 android 开发一个应用程序,在华为设备上我面临很多问题。我在我的应用程序中使用 FusedLocation 和通知,因此我不得不为华为设备开发另一个应用程序,因为许多华为设备现在不支持 GMS。我无法理解 HMS 和 GMS 之间的主要区别。
- 如果华为设备同时包含 GMS 和 HMS 并且从 App Gallery 下载应用程序(包含 HMS 支持),则 HMS 核心会导致一些问题。通知和位置回调将无法正常工作。
- 如果设备只包含 HMS 核心,并且从 AppGallery 下载了应用程序,则它可以正常工作。
解决方案
建议您使用GMS和HMS集成的方案。优点如下:
- 降低应用程序打包的复杂性。一个包可以同时发布到 Google Play 和 HUAWEI AppGallery。
- 降低代码维护成本。HMS+GMS适配层代码是在原逻辑代码的基础上增加的。这样就可以根据手机自动调用正确的代码。也就是说,您不需要修改现有的逻辑代码或维护两套代码。
建议您使用HUAWEI HMS ToolKit,可以帮助您快速添加HMS+GMS适配层代码,升级您的逻辑代码,同时支持GMS和HMS。
具体可以参考这个问题:项目中同时拥有GMS和HMS。
推荐阅读
- c++ - 使用 Visual Studio 的 x86 程序集错误
- keycloak - Keycloak 领域设置不再显示“重复电子邮件”开关
- elasticsearch - Elasticsearch helm chart 给出 AccessDenied 异常
- html - 如何集中两个图像并在它们之间添加一些文本
- javascript - 使用 useState Hook 在 React 中渲染字符串数组
- jsf - 无法在 JSF 页面中显示数据库中的数据
- c# - 在 UWP 应用程序的完全信任 win32 组件中使用 .NET 标准库时引发 FileNotFoundException(无法加载文件或程序集)
- xml - 读取XML文件中提到的垃圾值如何报错?
- sql - Sql Query 转换为打开 qnt 的 sql 表。购买 qnt,并关闭 qnt
- javascript - jQuery 每个方法都不会选择附加的 HTML