diff --git a/DistributedMapDemo/entry/build.gradle b/DistributedMapDemo/entry/build.gradle index a1d1a0aa6497af2e3fd021f0f055a84719e5392d..3b47bf86f299921b7ac6b5605944e507da274e58 100644 --- a/DistributedMapDemo/entry/build.gradle +++ b/DistributedMapDemo/entry/build.gradle @@ -4,21 +4,10 @@ ohos { defaultConfig { compatibleSdkVersion 4 } - signingConfigs { - debug { - storeFile file('D:/sign/lengxianglei/ide_acg_pk.p12') - storePassword '00000018FE915E012EF9E3073CF247314FAA52D1FAB3BF0979BEB2B0A14E018AA6B7FADC0ED7E8DF' - keyAlias 'ide_acg_pk' - keyPassword '00000018ED8CF1E10DAC04612FE80A4CCFDA6901389EF5BF43C6D27B226442E837C7314E077A4972' - signAlg 'SHA256withECDSA' - profile file('D:/sign/lengxianglei/cookbookDebug.p7b') - certpath file('D:/sign/lengxianglei/ide_acg.cer') - } - } } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar', '*.har']) - implementation project(":tinymap") implementation 'com.google.code.gson:gson:2.8.0' + implementation project(":tinymap") } diff --git a/DistributedMapDemo/entry/src/main/config.json b/DistributedMapDemo/entry/src/main/config.json index 3a2ef3635cb6293645b559837870829aba570d11..b8e48634c785f47ffcf89cd44b21d998af857e94 100644 --- a/DistributedMapDemo/entry/src/main/config.json +++ b/DistributedMapDemo/entry/src/main/config.json @@ -1,6 +1,6 @@ { "app": { - "bundleName": "com.huawei.cookbook", + "bundleName": "com.huawei.codelab", "vendor": "huawei", "version": { "code": 1000000, @@ -40,35 +40,7 @@ "description": "$string:mainability_description", "label": "$string:app_name", "type": "page", - "launchType": "standard", - "visible": true, - "formsEnabled": true, - "forms": [ - { - "isDefault": true, - "scheduledUpdateTime": "10:30", - "defaultDimension": "2*4", - "name": "DateCard", - "description": "This is a form card", - "colorMode": "auto", - "type": "Java", - "supportDimensions": [ - "2*2", - "2*4" - ], - "landscapeLayouts": [ - "$layout:form_epidemic_card_2_2", - "$layout:form_epidemic_card_2_4" - ], - "portraitLayouts": [ - "$layout:form_epidemic_card_2_2", - "$layout:form_epidemic_card_2_4" - ], - "updateEnabled": true, - "updateDuration": 1, - "formVisibleNotify": true - } - ] + "launchType": "standard" }, { "name": "com.huawei.codelab.WatchService", diff --git a/DistributedMapDemo/entry/src/main/java/com/huawei/codelab/MainAbility.java b/DistributedMapDemo/entry/src/main/java/com/huawei/codelab/MainAbility.java index 5479471642ff551fe67878f322ca2ede8ab62ac5..aaaa54f14c4cd9212faea0024c19d03f6c932f56 100644 --- a/DistributedMapDemo/entry/src/main/java/com/huawei/codelab/MainAbility.java +++ b/DistributedMapDemo/entry/src/main/java/com/huawei/codelab/MainAbility.java @@ -16,6 +16,7 @@ package com.huawei.codelab; import com.huawei.codelab.slice.MainAbilitySlice; +import com.huawei.codelab.slice.WatchAbilitySlice; import com.huawei.codelab.util.LogUtils; import com.huawei.codelab.util.PermissionsUtils; @@ -23,6 +24,8 @@ import ohos.aafwk.ability.Ability; import ohos.aafwk.ability.IAbilityContinuation; import ohos.aafwk.content.Intent; import ohos.aafwk.content.IntentParams; +import ohos.data.distributed.common.KvManagerConfig; +import ohos.data.distributed.common.KvManagerFactory; import ohos.security.SystemPermission; /** @@ -33,12 +36,20 @@ import ohos.security.SystemPermission; public class MainAbility extends Ability implements IAbilityContinuation { private static final String TAG = MainAbility.class.getSimpleName(); + private static final String DEVICE_TYPE_WATCH = "109"; + private String[] requestPermissions = {SystemPermission.DISTRIBUTED_DATASYNC, SystemPermission.LOCATION}; @Override public void onStart(Intent intent) { super.onStart(intent); - super.setMainRoute(MainAbilitySlice.class.getName()); + String deviceType = + KvManagerFactory.getInstance().createKvManager(new KvManagerConfig(this)).getLocalDeviceInfo().getType(); + if (deviceType.equals(DEVICE_TYPE_WATCH)) { + super.setMainRoute(WatchAbilitySlice.class.getName()); + } else { + super.setMainRoute(MainAbilitySlice.class.getName()); + } PermissionsUtils.getInstance().requestPermissions(this, requestPermissions); } diff --git a/DistributedMapDemo/entry/src/main/java/com/huawei/codelab/map/Const.java b/DistributedMapDemo/entry/src/main/java/com/huawei/codelab/map/Const.java index f32fa2fa097e35ead649f1a31c7c64562b091d1f..cef1f046be7b7b6358488336679447d3bcc4e8a4 100644 --- a/DistributedMapDemo/entry/src/main/java/com/huawei/codelab/map/Const.java +++ b/DistributedMapDemo/entry/src/main/java/com/huawei/codelab/map/Const.java @@ -22,16 +22,10 @@ package com.huawei.codelab.map; */ public class Const { /** - * 接口的调用凭证,需要开发者自己申请 + * 高德地图接口的调用凭证,需要开发者自己申请 */ public static final String MAP_KEY = "fdec31f36248c7aa50dd2d252cc773e2"; - /** - * 高德地图导航瓦片url - */ - public static final String TILE_URL = - "https://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=2&style=8&x=%d&y=%d&z=%d"; - /** * 高德地图输入提示api接口 */ diff --git a/DistributedMapDemo/entry/src/main/java/com/huawei/codelab/map/MapDataHelper.java b/DistributedMapDemo/entry/src/main/java/com/huawei/codelab/map/MapDataHelper.java index b2ad9dad0dacd719527972feac2a9d348f8be827..959e6efd9fa469ded9f1faeeaefdbb739051177d 100644 --- a/DistributedMapDemo/entry/src/main/java/com/huawei/codelab/map/MapDataHelper.java +++ b/DistributedMapDemo/entry/src/main/java/com/huawei/codelab/map/MapDataHelper.java @@ -26,6 +26,7 @@ import com.huawei.codelab.util.MapUtils; import com.dongyu.tinymap.Element; import com.dongyu.tinymap.TinyMap; +import ohos.agp.components.TextField; import ohos.agp.utils.Point; import ohos.app.Context; @@ -75,27 +76,33 @@ public class MapDataHelper { /** * 获取本机位置信息 + * + * @param startLocationText start location Component */ - public void getMyLocation() { + public void getMyLocation(TextField startLocationText) { new LocationHelper().getMyLocation(context, loc -> { double locLongitude = loc.getLongitude(); double locLatitude = loc.getLatitude(); location = locLongitude + "," + locLatitude; if (tinyMap.getMapElements() == null) { setMapCenter(locLongitude, locLatitude); - getRegionDetail(); + getRegionDetail(startLocationText); } }); } /** * 调用高德地图逆地理编码api,获取城市编码 + * + * @param startLocationText start location Component */ - private void getRegionDetail() { + private void getRegionDetail(TextField startLocationText) { String url = String.format(Const.REGION_DETAIL_URL, location, Const.MAP_KEY); HttpUtils.getInstance(context).get(url, result -> { RegionDetailResult regionDetailResult = GsonUtils.jsonToBean(result, RegionDetailResult.class); localCityCode = regionDetailResult.getRegeocode().getAddressComponent().getCitycode(); + startLocationText.setText("我的位置"); + LogUtils.info(TAG, "localCityCode:" + localCityCode); }); } @@ -123,7 +130,12 @@ public class MapDataHelper { */ public void getRouteResult(String endLocation) { String url = String.format(Const.ROUTE_URL, location, endLocation, Const.MAP_KEY); - HttpUtils.getInstance(context).get(url, result -> dataCallBack.setRouteView(result)); + HttpUtils.getInstance(context).get(url, result -> { + dataCallBack.setBottomView(); + tinyMap.setStepPoint(0); + tinyMap.getMapElements().clear(); + parseRoute(result); + }); } /** @@ -132,7 +144,6 @@ public class MapDataHelper { * @param result 高德地图路径规划api返回的结果 */ public void parseRoute(String result) { - tinyMap.getMapElements().clear(); RouteResult routeResult = GsonUtils.jsonToBean(result, RouteResult.class); List paths = routeResult.getRoute().getPaths(); RouteResult.RouteEntity.PathsEntity pathsEntity = paths.get(0); @@ -207,10 +218,8 @@ public class MapDataHelper { void setInputTipsView(List tips); /** - * 设置导航路径视图 - * - * @param route route + * 设置底部视图 */ - void setRouteView(String route); + void setBottomView(); } } diff --git a/DistributedMapDemo/entry/src/main/java/com/huawei/codelab/map/MapManager.java b/DistributedMapDemo/entry/src/main/java/com/huawei/codelab/map/MapManager.java index c7d406170ace263bc99df1daf71e7d2651064d9e..0f1bde3ad5d2dea740efa8bb7758545b5a35f58e 100644 --- a/DistributedMapDemo/entry/src/main/java/com/huawei/codelab/map/MapManager.java +++ b/DistributedMapDemo/entry/src/main/java/com/huawei/codelab/map/MapManager.java @@ -238,9 +238,12 @@ public class MapManager { /** * 迁移 + * + * @param deviceId selected deviceId */ - public void translate() { - slice.continueAbility(); + public void translate(String deviceId) { + slice.continueAbility(deviceId); + // 关闭WatchAbility requestRemote(Const.STOP_WATCH_ABILITY, ""); } @@ -260,7 +263,7 @@ public class MapManager { */ public interface NavListener { /** - * 监听回调 + * 监听回调,将数据会调给MainAbilitySlice * * @param element MapElement */ @@ -283,11 +286,12 @@ public class MapManager { if (event.eventId != 1) { return; } - LogUtils.info(TAG, "processEvent invalidate"); if (nextElement.getActionType() != null && !nextElement.getActionType().isEmpty()) { + // 将nextElement回调给MainAbilitySlice navListener.onNavListener(nextElement); } if (proxy != null) { + // 将数据发送给WatchService requestRemote(nextElement.getActionType() == null ? "" : nextElement.getActionType(), nextElement.getActionContent() == null ? "" : nextElement.getActionContent()); } diff --git a/DistributedMapDemo/entry/src/main/java/com/huawei/codelab/provider/InputTipsProvider.java b/DistributedMapDemo/entry/src/main/java/com/huawei/codelab/provider/InputTipsProvider.java index 81b117529d2341b7c77f4547651988fe80a3db3a..4e69481e715e038b1c695c102e123a60ccbde1e8 100644 --- a/DistributedMapDemo/entry/src/main/java/com/huawei/codelab/provider/InputTipsProvider.java +++ b/DistributedMapDemo/entry/src/main/java/com/huawei/codelab/provider/InputTipsProvider.java @@ -72,12 +72,10 @@ public class InputTipsProvider extends BaseItemProvider { if (component == null) { component = LayoutScatter.getInstance(context).parse(ResourceTable.Layout_item_input_tips, null, false); viewHolder = new ViewHolder(); - if (component.findComponentById(ResourceTable.Id_tips_name) instanceof Text) { - viewHolder.tipsName = (Text) component.findComponentById(ResourceTable.Id_tips_name); - } - if (component.findComponentById(ResourceTable.Id_tips_detail) instanceof Text) { - viewHolder.tipsDetail = (Text) component.findComponentById(ResourceTable.Id_tips_detail); - } + + viewHolder.tipsName = (Text) component.findComponentById(ResourceTable.Id_tips_name); + viewHolder.tipsDetail = (Text) component.findComponentById(ResourceTable.Id_tips_detail); + component.setTag(viewHolder); } else { if (component.getTag() instanceof ViewHolder) { diff --git a/DistributedMapDemo/entry/src/main/java/com/huawei/codelab/slice/MainAbilitySlice.java b/DistributedMapDemo/entry/src/main/java/com/huawei/codelab/slice/MainAbilitySlice.java index 96a0d65aa8662beeb139903197a7fb3ef518c6db..75e90e82c07c949f378eee79fdc457424ebcfb33 100644 --- a/DistributedMapDemo/entry/src/main/java/com/huawei/codelab/slice/MainAbilitySlice.java +++ b/DistributedMapDemo/entry/src/main/java/com/huawei/codelab/slice/MainAbilitySlice.java @@ -21,15 +21,20 @@ import com.huawei.codelab.map.MapDataHelper; import com.huawei.codelab.map.MapManager; import com.huawei.codelab.provider.InputTipsProvider; import com.huawei.codelab.util.GsonUtils; -import com.huawei.codelab.util.ImageUtils; import com.huawei.codelab.util.LogUtils; import com.huawei.codelab.util.PermissionsUtils; import com.dongyu.tinymap.Element; import com.dongyu.tinymap.TinyMap; +import com.dongyu.tinymap.util.ImageUtils; import ohos.aafwk.ability.AbilitySlice; import ohos.aafwk.ability.IAbilityContinuation; +import ohos.aafwk.ability.continuation.DeviceConnectState; +import ohos.aafwk.ability.continuation.ExtraParams; +import ohos.aafwk.ability.continuation.IContinuationDeviceCallback; +import ohos.aafwk.ability.continuation.IContinuationRegisterManager; +import ohos.aafwk.ability.continuation.RequestCallback; import ohos.aafwk.content.Intent; import ohos.aafwk.content.IntentParams; import ohos.agp.components.Button; @@ -106,6 +111,39 @@ public class MainAbilitySlice extends AbilitySlice private int stepPoint = 0; + // 注册流转任务管理服务后返回的Ability token + private int abilityToken; + + // 用户在设备列表中选择设备后返回的设备ID + private String selectDeviceId; + + // 获取流转任务管理服务管理类 + private IContinuationRegisterManager continuationRegisterManager; + + // 设置流转任务管理服务设备状态变更的回调 + private IContinuationDeviceCallback callback = new IContinuationDeviceCallback() { + @Override + public void onDeviceConnectDone(String deviceId, String deviceType) { + // 在用户选择设备后设置设备ID + selectDeviceId = deviceId; + LogUtils.info(TAG, "onDeviceConnectDone:"); + translate(); + } + + @Override + public void onDeviceDisconnectDone(String deviceId) { + LogUtils.info(TAG, "onDeviceDisconnectDone:" + deviceId); + } + }; + + // 设置注册流转任务管理服务回调 + private RequestCallback requestCallback = new RequestCallback() { + @Override + public void onResult(int result) { + abilityToken = result; + } + }; + @Override public void onStart(Intent intent) { super.onStart(intent); @@ -117,57 +155,19 @@ public class MainAbilitySlice extends AbilitySlice } private void findComponentById() { - if (findComponentById(ResourceTable.Id_map) instanceof TinyMap) { - tinyMap = (TinyMap) findComponentById(ResourceTable.Id_map); - } - - if (findComponentById(ResourceTable.Id_start_point_field) instanceof TextField) { - startTextField = (TextField) findComponentById(ResourceTable.Id_start_point_field); - } - - if (findComponentById(ResourceTable.Id_end_point_field) instanceof TextField) { - endTextField = (TextField) findComponentById(ResourceTable.Id_end_point_field); - } - - if (findComponentById(ResourceTable.Id_route_content) instanceof Text) { - routeContent = (Text) findComponentById(ResourceTable.Id_route_content); - } - - if (findComponentById(ResourceTable.Id_route_tips) instanceof DependentLayout) { - routeTipsLayout = (DependentLayout) findComponentById(ResourceTable.Id_route_tips); - } - - if (findComponentById(ResourceTable.Id_route_img) instanceof Image) { - routeImage = (Image) findComponentById(ResourceTable.Id_route_img); - } - - if (findComponentById(ResourceTable.Id_list_input_tips) instanceof ListContainer) { - listContainer = (ListContainer) findComponentById(ResourceTable.Id_list_input_tips); - } - - if (findComponentById(ResourceTable.Id_layout_input_tips) instanceof DependentLayout) { - inputTipsLayout = (DependentLayout) findComponentById(ResourceTable.Id_layout_input_tips); - } - - if (findComponentById(ResourceTable.Id_select_point) instanceof DirectionalLayout) { - selectPointLayout = (DirectionalLayout) findComponentById(ResourceTable.Id_select_point); - } - - if (findComponentById(ResourceTable.Id_nav_bottom) instanceof DirectionalLayout) { - navBottom = (DirectionalLayout) findComponentById(ResourceTable.Id_nav_bottom); - } - - if (findComponentById(ResourceTable.Id_start_nav) instanceof Button) { - btnStartNav = (Button) findComponentById(ResourceTable.Id_start_nav); - } - - if (findComponentById(ResourceTable.Id_end_nav) instanceof Button) { - btnEndNav = (Button) findComponentById(ResourceTable.Id_end_nav); - } - - if (findComponentById(ResourceTable.Id_nav_translate) instanceof Button) { - navTranslate = (Button) findComponentById(ResourceTable.Id_nav_translate); - } + tinyMap = (TinyMap) findComponentById(ResourceTable.Id_map); + startTextField = (TextField) findComponentById(ResourceTable.Id_start_point_field); + endTextField = (TextField) findComponentById(ResourceTable.Id_end_point_field); + routeContent = (Text) findComponentById(ResourceTable.Id_route_content); + routeTipsLayout = (DependentLayout) findComponentById(ResourceTable.Id_route_tips); + routeImage = (Image) findComponentById(ResourceTable.Id_route_img); + listContainer = (ListContainer) findComponentById(ResourceTable.Id_list_input_tips); + inputTipsLayout = (DependentLayout) findComponentById(ResourceTable.Id_layout_input_tips); + selectPointLayout = (DirectionalLayout) findComponentById(ResourceTable.Id_select_point); + navBottom = (DirectionalLayout) findComponentById(ResourceTable.Id_nav_bottom); + btnStartNav = (Button) findComponentById(ResourceTable.Id_start_nav); + btnEndNav = (Button) findComponentById(ResourceTable.Id_end_nav); + navTranslate = (Button) findComponentById(ResourceTable.Id_nav_translate); } private void setListener() { @@ -187,7 +187,11 @@ public class MainAbilitySlice extends AbilitySlice PermissionsUtils.getInstance().setRequestListener(permission -> { if (permission.equals(SystemPermission.LOCATION)) { - mapDataHelper.getMyLocation(); + mapDataHelper.getMyLocation(startTextField); + initContinuationRegisterManager(); + } + if (permission.equals(SystemPermission.DISTRIBUTED_DATASYNC)) { + initContinuationRegisterManager(); } }); @@ -224,7 +228,11 @@ public class MainAbilitySlice extends AbilitySlice listContainer.setTouchEventListener((component, touchEvent) -> true); if (verifySelfPermission(SystemPermission.LOCATION) == IBundleManager.PERMISSION_GRANTED) { - mapDataHelper.getMyLocation(); + mapDataHelper.getMyLocation(startTextField); + } + + if (verifySelfPermission(SystemPermission.DISTRIBUTED_DATASYNC) == IBundleManager.PERMISSION_GRANTED) { + initContinuationRegisterManager(); } if (elements != null) { @@ -245,7 +253,10 @@ public class MainAbilitySlice extends AbilitySlice tinyMap.addElement(element); } - mapManager.startNav(); + // 到达终点 + if (stepPoint < elements.size() - 1) { + mapManager.startNav(); + } } } @@ -276,13 +287,44 @@ public class MainAbilitySlice extends AbilitySlice } } + private void initContinuationRegisterManager() { + continuationRegisterManager = getContinuationRegisterManager(); + // 增加过滤条件 + ExtraParams params = new ExtraParams(); + String[] devTypes = new String[] {ExtraParams.DEVICETYPE_SMART_PAD, ExtraParams.DEVICETYPE_SMART_PHONE, + ExtraParams.DEVICETYPE_SMART_WATCH}; + params.setDevType(devTypes); + // 注册流转任务管理服务 + continuationRegisterManager.register(getBundleName(), params, callback, requestCallback); + } + + private void translate() { + getUITaskDispatcher().asyncDispatch(() -> { + if (continuationRegisterManager != null) { + continuationRegisterManager.updateConnectStatus(abilityToken, selectDeviceId, + DeviceConnectState.IDLE.getState(), null); + if (selectDeviceId != null) { + LogUtils.info(TAG, "translate:" + abilityToken); + // 用户点击后发起迁移流程 + mapManager.translate(selectDeviceId); + } + } + }); + } + @Override public void onClick(Component component) { switch (component.getId()) { // 迁移 case ResourceTable.Id_nav_translate: - mapManager.translate(); - setTranslateView(); + // 设置过滤设备类型 + ExtraParams params = new ExtraParams(); + String[] devTypes = new String[] {ExtraParams.DEVICETYPE_SMART_PAD, ExtraParams.DEVICETYPE_SMART_PHONE, + ExtraParams.DEVICETYPE_SMART_WATCH}; + params.setDevType(devTypes); + + // 显示选择设备列表 + continuationRegisterManager.showDeviceList(abilityToken, params, null); break; // 开始导航 @@ -301,10 +343,6 @@ public class MainAbilitySlice extends AbilitySlice } } - private void setTranslateView() { - navTranslate.setVisibility(Component.HIDE); - } - private void setStartNavView() { btnStartNav.setVisibility(Component.HIDE); selectPointLayout.setVisibility(Component.HIDE); @@ -331,11 +369,8 @@ public class MainAbilitySlice extends AbilitySlice } @Override - public void setRouteView(String route) { - tinyMap.getMapElements().clear(); + public void setBottomView() { navBottom.setVisibility(Component.VISIBLE); - tinyMap.setStepPoint(0); - mapDataHelper.parseRoute(route); } @Override @@ -372,7 +407,8 @@ public class MainAbilitySlice extends AbilitySlice @Override public void onCompleteContinuation(int result) { mapManager.translateComplete(); + navTranslate.setVisibility(Component.HIDE); routeTipsLayout.setVisibility(Component.HIDE); - LogUtils.info(TAG, "onCompleteContinuation"); + LogUtils.info(TAG, "onCompleteContinuation result:" + result); } } diff --git a/DistributedMapDemo/entry/src/main/java/com/huawei/codelab/slice/WatchAbilitySlice.java b/DistributedMapDemo/entry/src/main/java/com/huawei/codelab/slice/WatchAbilitySlice.java index 3afc8c84c606deac972e577c7dcdfab3f2c4550b..e04ad36527392f84703d57ac32d7b2cfe42c40f5 100644 --- a/DistributedMapDemo/entry/src/main/java/com/huawei/codelab/slice/WatchAbilitySlice.java +++ b/DistributedMapDemo/entry/src/main/java/com/huawei/codelab/slice/WatchAbilitySlice.java @@ -55,12 +55,8 @@ public class WatchAbilitySlice extends AbilitySlice { } private void findComponentById() { - if (findComponentById(ResourceTable.Id_action_content) instanceof Text) { - contentComponent = (Text) findComponentById(ResourceTable.Id_action_content); - } - if (findComponentById(ResourceTable.Id_action_img) instanceof Image) { - actionImg = (Image) findComponentById(ResourceTable.Id_action_img); - } + contentComponent = (Text) findComponentById(ResourceTable.Id_action_content); + actionImg = (Image) findComponentById(ResourceTable.Id_action_img); } private void subscribe() { diff --git a/DistributedMapDemo/entry/src/main/java/com/huawei/codelab/util/ImageUtils.java b/DistributedMapDemo/entry/src/main/java/com/huawei/codelab/util/ImageUtils.java index a7c1f705bffd6d5013fca7876ae1c5df4f1180f1..47687faddb7cb606198baeac2e8fbb867594cadb 100644 --- a/DistributedMapDemo/entry/src/main/java/com/huawei/codelab/util/ImageUtils.java +++ b/DistributedMapDemo/entry/src/main/java/com/huawei/codelab/util/ImageUtils.java @@ -18,31 +18,12 @@ package com.huawei.codelab.util; import com.huawei.codelab.ResourceTable; import com.huawei.codelab.map.Const; -import ohos.app.Context; -import ohos.global.resource.NotExistException; -import ohos.media.image.ImageSource; -import ohos.media.image.PixelMap; -import ohos.media.image.common.Size; - -import java.io.IOException; -import java.io.InputStream; -import java.net.URL; -import java.net.URLConnection; - /** * MapHelper * * @since 2021-02-01 */ public class ImageUtils { - private static final String TAG = ImageUtils.class.getName(); - - private static final int TILE_LENGTH = 513; - - private static final int TIME_OUT = 5 * 1000; - - private static final int IMAGE_WIDTH_HEIGHT = 80; - private ImageUtils() { } @@ -84,68 +65,4 @@ public class ImageUtils { } return imageId; } - - /** - * getPixelMap - * - * @param context context - * @param actionType actionType - * @return PixelMap - */ - public static PixelMap getPixelMap(Context context, String actionType) { - InputStream drawableInputStream = null; - PixelMap pixelMap = null; - try { - drawableInputStream = context.getResourceManager().getResource(ImageUtils.getImageId(actionType)); - ImageSource imageSource = ImageSource.create(drawableInputStream, new ImageSource.SourceOptions()); - ImageSource.DecodingOptions options = new ImageSource.DecodingOptions(); - options.desiredSize = new Size(IMAGE_WIDTH_HEIGHT, IMAGE_WIDTH_HEIGHT); - pixelMap = imageSource.createPixelmap(options); - return pixelMap; - } catch (IOException | NotExistException exception) { - LogUtils.info(TAG, "getPixelMap:" + exception.getMessage()); - } finally { - if (drawableInputStream != null) { - try { - drawableInputStream.close(); - } catch (IOException e) { - LogUtils.info(TAG, "getPixelMap:" + e.getMessage()); - } - } - } - return pixelMap; - } - - /** - * 从网络获取地图瓦片数据 - * - * @param urlString urlString - * @return PixelMap - */ - public static PixelMap getMapPixelMap(String urlString) { - InputStream is = null; - PixelMap pixelMap = null; - try { - URL url = new URL(urlString); - URLConnection con = url.openConnection(); - con.setConnectTimeout(TIME_OUT); - is = con.getInputStream(); - ImageSource source = ImageSource.create(is, new ImageSource.SourceOptions()); - ImageSource.DecodingOptions options = new ImageSource.DecodingOptions(); - options.desiredSize = new Size(TILE_LENGTH, TILE_LENGTH); - pixelMap = source.createPixelmap(options); - return pixelMap; - } catch (IOException exception) { - LogUtils.info(TAG, "getImagePixelMap:" + exception.getMessage()); - } finally { - if (is != null) { - try { - is.close(); - } catch (IOException e) { - LogUtils.info(TAG, "getImagePixelMap:" + e.getMessage()); - } - } - } - return pixelMap; - } } diff --git a/DistributedMapDemo/entry/src/main/java/com/huawei/codelab/util/PermissionsUtils.java b/DistributedMapDemo/entry/src/main/java/com/huawei/codelab/util/PermissionsUtils.java index 2f4497ef1b2bfcc18b9d56c8ef45b4975e7718af..96c7ec0b3ce635358b52774e56fd48d152cd717f 100644 --- a/DistributedMapDemo/entry/src/main/java/com/huawei/codelab/util/PermissionsUtils.java +++ b/DistributedMapDemo/entry/src/main/java/com/huawei/codelab/util/PermissionsUtils.java @@ -88,7 +88,9 @@ public class PermissionsUtils { } for (int i = 0; i < grantResults.length; i++) { if (grantResults[i] == IBundleManager.PERMISSION_GRANTED) { - requestListener.permissionGranted(permissions[i]); + if (requestListener != null) { + requestListener.permissionGranted(permissions[i]); + } } else { LogUtils.info(TAG, "user deny permission:" + permissions[i]); } diff --git a/DistributedMapDemo/entry/src/main/resources/base/graphic/background_card1.xml b/DistributedMapDemo/entry/src/main/resources/base/graphic/background_card1.xml deleted file mode 100644 index 0a808105fe3c462f101ed6bd085af1333d3f499c..0000000000000000000000000000000000000000 --- a/DistributedMapDemo/entry/src/main/resources/base/graphic/background_card1.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/DistributedMapDemo/entry/src/main/resources/base/graphic/button_bg1.xml b/DistributedMapDemo/entry/src/main/resources/base/graphic/button_bg1.xml deleted file mode 100644 index 6499b0e418489c1e3375416b061ed726ad1a47e3..0000000000000000000000000000000000000000 --- a/DistributedMapDemo/entry/src/main/resources/base/graphic/button_bg1.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/DistributedMapDemo/entry/src/main/resources/base/layout/ability_main.xml b/DistributedMapDemo/entry/src/main/resources/base/layout/ability_main.xml index 05d2feb594b56c312f3bdaa58c4ba460ecd5404c..11fc4433fcee4d45bd27018c57a0e35e6df02d9c 100644 --- a/DistributedMapDemo/entry/src/main/resources/base/layout/ability_main.xml +++ b/DistributedMapDemo/entry/src/main/resources/base/layout/ability_main.xml @@ -30,7 +30,7 @@ ohos:width="match_parent"> - - - \ No newline at end of file diff --git a/DistributedMapDemo/entry/src/main/resources/base/layout/form_epidemic_card_2_4.xml b/DistributedMapDemo/entry/src/main/resources/base/layout/form_epidemic_card_2_4.xml deleted file mode 100644 index b53a70b64190d4bb6757dd144e4ff79a6e38dbb7..0000000000000000000000000000000000000000 --- a/DistributedMapDemo/entry/src/main/resources/base/layout/form_epidemic_card_2_4.xml +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - -