實作指南:如何在Android app內成功導入Huawei HMS Core 4.0 SDK

前言

  • 過去在專案上有遇過
    有廠商要求導入Huawei SDK的經驗
    剛好以前有做一些筆記
    現在把他整理出來
    分享給大家!
    整體開發下來
    其實就是跟Google gms滿像的 XDD

導入HMS

第一步:註冊帳號
第二步:在後台創建應用
  • 這邊就是跟其他平台滿像的
    有使用者介面操作一下即可創建
    1.png
    接著就需要去開啟你要用的API的權限
    也是在後台打開
    2.png
第三步 :生成簽名
  • 這邊跟google滿像的
    可以用AS內的tool直接生成
    3.png
    產生後使用指令
    keytool -list -v -keystore <keystore-file>
    keystore-file : 這邊是需要輸入證書path
    之後把產生的Sha256 hash貼到華為後台你剛創建的app的配置內

第四步:配置簽名
  • 生成簽名之後
    就可以在華為後台下載 agconnect-services.json
    接著開始加入到你的專案中

  • 這個圖是當時專案的配置
    因為那時候產品需求是
    希望在build project的時候就能先build進不同產商的配置
    然後亦希望在huawei內如果有人的手機自行安裝了gms
    又要可以支援google服務
    所以配置如下圖

    4.png

    當然實際專案開發時
    可以跟你們的team member溝通會比較好

  • 因為HMS很多function name 都跟GMS 內都是一樣的名字XD
    所以開發上就要好好分清楚會比較好
    不管從配置著手 或 code分離開始
    不然很容易後期維護上會很麻煩
    耦合太高又很難拆的話就…

第五步:加入專案配置
  • 再來加入android專案
    在build gradle內配置maven {url 'https://developer.huawei.com/repo/'}

  • 再來把需要HMS kit 導入到專案內
    這邊以HMS map為例
    這樣可以正式開始開發了!

開發huawei遇到的小差異分享
  • Hms 與 Gms 兩家地圖的小差異
    前面說到HMS與GMS的function name 極度相似
    所以如果用過gms的人應該很快能上手(?
    不過我剛好運氣比較好
    在開發時有遇到
    稍微不同的地方
    Cover Cover

    就是在設置 polyline的時候同樣的常數設置出來的粗度不同啊
    googlePolylineOption.width(5) vs huaweiPolylineOption.width(5) 實測效果不一樣

    所以也不是全部邏輯能直接套啊XDD 最好還是檢查一下!!

    最後改成這樣才能一樣
    5.png

  • 推播小差異
    主要就是繼承子類不同
    其他用起來也一樣
    不過我會分享是因為
    之前開發別的華為功能
    幾乎是方法、類的名稱幾乎一模一樣XD
    8.png

總結一下

  • HMS & GMS 除了package name不太一樣
    另外就是少部分function不太一樣
    整體上兩家SDK用法沒有差到很多

You might also enjoy