[文章]HarmonyOS原子化服务开发实战-地图导航

阅读量0
0
3
最近尝试了在开发的项目上添加打开三方应用的地图导航功能,下面是体验的详细代码。
  1. package com.jltf.jltf_navigation.slice;

  2. import com.jltf.jltf_navigation.ResourceTable;
  3. import ohos.aafwk.ability.AbilitySlice;
  4. import ohos.aafwk.content.Intent;
  5. import ohos.agp.components.Component;
  6. import ohos.agp.components.TextField;
  7. import ohos.bundle.IBundleManager;
  8. import ohos.hiviewdfx.HiLog;
  9. import ohos.hiviewdfx.HiLogLabel;
  10. import ohos.utils.net.Uri;

  11. public class MainAbilitySlice extends AbilitySlice {

  12.     private static final HiLogLabel TAG = new HiLogLabel(HiLog.LOG_APP,0x0,"地图导航");
  13.     String address="北京市";

  14.     Uri uri;
  15.     @Override
  16.     public void onStart(Intent intent) {
  17.         super.onStart(intent);
  18.         super.setUIContent(ResourceTable.Layout_ability_main);


  19.         findComponentById(ResourceTable.Id_Nabtn).setClickedListener(new Component.ClickedListener() {
  20.             @Override
  21.             public void onClick(Component component) {

  22.                 TextField textField = findComponentById(ResourceTable.Id_text);

  23.                 address=textField.getText();

  24.                 HiLog.info(TAG,"输入地址:"+address);

  25.                 if (isAppExist("com.tencent.map")){

  26.                     // 腾讯地图
  27.                     uri=Uri.parse( "qqmap://map/search?keyword=" + address);

  28.                 }else if (isAppExist("com.autonavi.minimap")){

  29.                     // 高德地图
  30.                     uri=Uri.parse("androidamap://keywordNavi?sourceApplication="+getBundleName()+"&keyword="+address+"&style=2");

  31.                 }else if (isAppExist("com.baidu.BaiduMap")){
  32.               
  33.                     uri=Uri.parse("baidumap://map/geocoder?src="+getBundleName()+"&address="+address); // 百度地图

  34.                 }

  35.                 Intent intent1=new Intent();
  36.                 intent1.setUri(uri);
  37.                 startAbility(intent1);
  38.             }
  39.         });
  40.     }

  41.     boolean isAppExist(String appPkg) {

  42.         try {

  43.             IBundleManager manager = this.getBundleManager();

  44.             return manager.isApplicationEnabled(appPkg);

  45.         } catch (IllegalArgumentException e) {

  46.             return false;

  47.         }

  48.     }

  49.     @Override
  50.     public void onActive() {
  51.         super.onActive();
  52.     }

  53.     @Override
  54.     public void onForeground(Intent intent) {
  55.         super.onForeground(intent);
  56.     }
  57. }
复制代码

现在只实现了高德、百度和腾讯三方地图导航打开,后续会继续补充。
附件:

回帖

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
链接复制成功,分享给好友