diff --git a/ability/DistributedScheduler/build.gradle b/ability/DistributedScheduler/build.gradle index 4e8a6aadbd114fd91535e3347c8a293ad0fab769..02c896996fcc7893f6f7944fdcf432766d02a5a5 100644 --- a/ability/DistributedScheduler/build.gradle +++ b/ability/DistributedScheduler/build.gradle @@ -2,9 +2,9 @@ apply plugin: 'com.huawei.ohos.app' ohos { - compileSdkVersion 5 + compileSdkVersion 6 defaultConfig { - compatibleSdkVersion 4 + compatibleSdkVersion 6 } } diff --git a/ability/DistributedScheduler/entry/build.gradle b/ability/DistributedScheduler/entry/build.gradle index 83f59debbd68242b503a22270f4378d7843ca204..f8ae90aed26d4446ec7eb02443883f208a547154 100644 --- a/ability/DistributedScheduler/entry/build.gradle +++ b/ability/DistributedScheduler/entry/build.gradle @@ -1,8 +1,8 @@ apply plugin: 'com.huawei.ohos.hap' ohos { - compileSdkVersion 5 + compileSdkVersion 6 defaultConfig { - compatibleSdkVersion 4 + compatibleSdkVersion 6 } buildTypes { release { diff --git a/ability/DistributedScheduler/entry/src/main/java/ohos/samples/distributedscheduler/slice/MainAbilitySlice.java b/ability/DistributedScheduler/entry/src/main/java/ohos/samples/distributedscheduler/slice/MainAbilitySlice.java index abda5dcc5da95a5d8322ca43f129a3b1be07d60f..999fa13ea2cb1e26b96cc60668b39fe4fc8d6c22 100644 --- a/ability/DistributedScheduler/entry/src/main/java/ohos/samples/distributedscheduler/slice/MainAbilitySlice.java +++ b/ability/DistributedScheduler/entry/src/main/java/ohos/samples/distributedscheduler/slice/MainAbilitySlice.java @@ -15,8 +15,11 @@ package ohos.samples.distributedscheduler.slice; -import ohos.agp.window.dialog.IDialog; -import ohos.agp.window.dialog.ListDialog; +import ohos.aafwk.ability.continuation.ExtraParams; +import ohos.aafwk.ability.continuation.ContinuationDeviceInfo; +import ohos.aafwk.ability.continuation.IContinuationDeviceCallback; +import ohos.aafwk.ability.continuation.IContinuationRegisterManager; +import ohos.aafwk.ability.continuation.RequestCallback; import ohos.distributedschedule.interwork.IInitCallback; import ohos.samples.distributedscheduler.MainAbility; import ohos.samples.distributedscheduler.RemoteAgentProxy; @@ -33,8 +36,6 @@ import ohos.agp.components.Text; import ohos.agp.window.dialog.ToastDialog; import ohos.app.Context; import ohos.bundle.ElementName; -import ohos.distributedschedule.interwork.DeviceInfo; -import ohos.distributedschedule.interwork.DeviceManager; import ohos.eventhandler.EventHandler; import ohos.eventhandler.EventRunner; import ohos.eventhandler.InnerEvent; @@ -43,10 +44,6 @@ import ohos.hiviewdfx.HiLogLabel; import ohos.rpc.IRemoteObject; import ohos.rpc.RemoteException; -import java.util.List; - -import static ohos.agp.components.ComponentContainer.LayoutConfig.MATCH_CONTENT; - /** * MainAbilitySlice */ @@ -66,13 +63,17 @@ public class MainAbilitySlice extends AbilitySlice implements IAbilityContinuati private static final String REMOTE_SERVICE_FA = "ohos.samples.distributedscheduler.PageAbility"; + private IContinuationRegisterManager continuationRegisterManager; + + private int abilityToken; + private Text text; private String param; - private String selectedDeviceId; + private String selectedDeviceId; - private RemoteAgentProxy remoteAgentProxy = null; + private RemoteAgentProxy remoteAgentProxy = null; private EventHandler eventHandler = new EventHandler(EventRunner.current()) { @Override @@ -94,9 +95,22 @@ public class MainAbilitySlice extends AbilitySlice implements IAbilityContinuati public void onStart(Intent intent) { super.onStart(intent); super.setUIContent(ohos.samples.distributedscheduler.ResourceTable.Layout_main_ability_slice); + initContinuationRegisterManager(); initComponents(); } + private void initContinuationRegisterManager() { + continuationRegisterManager = getContinuationRegisterManager(); + ExtraParams params = new ExtraParams(); + String[] devTypes = new String[]{ExtraParams.DEVICETYPE_SMART_PAD, ExtraParams.DEVICETYPE_SMART_PHONE}; + params.setDevType(devTypes); + params.setTargetBundleName(REMOTE_BUNDLE); + String jsonParams = "{\"filter\":{\"commonFilter\":{\"groupType\":\"1|256\"}}," + + "\"isTurnOffRecommend\":true,\"transferScene\":0}"; + params.setJsonParams(jsonParams); + continuationRegisterManager.register(REMOTE_BUNDLE, params, callback, requestCallback); + } + private void initComponents() { Component choiceDeviceButton = findComponentById(ResourceTable.Id_choice_device); choiceDeviceButton.setClickedListener(component -> selectDevice()); @@ -131,42 +145,45 @@ public class MainAbilitySlice extends AbilitySlice implements IAbilityContinuati private void disConnectAbility() { disconnectAbility(connection); - try { - DeviceManager.unInitDistributedEnvironment(selectedDeviceId, iInitCallback); - } catch (RemoteException | IllegalArgumentException e) { - HiLog.info(LABEL_LOG, e.getMessage()); - } remoteAgentProxy = null; } private void selectDevice() { - List infoList = DeviceManager.getDeviceList(DeviceInfo.FLAG_GET_ALL_DEVICE); - if ((infoList == null) || (infoList.size() == 0)) { - selectedDeviceId = null; + ExtraParams params = new ExtraParams(); + String[] devTypes = new String[]{ExtraParams.DEVICETYPE_SMART_PAD, ExtraParams.DEVICETYPE_SMART_PHONE}; + params.setDevType(devTypes); + params.setTargetBundleName(REMOTE_BUNDLE); + String jsonParams = "{\"filter\":{\"commonFilter\":{\"groupType\":\"1|256\"}}," + + "\"isTurnOffRecommend\":true,\"transferScene\":0}"; + params.setJsonParams(jsonParams); + continuationRegisterManager.showDeviceList(abilityToken, params, null); + } + + private IContinuationDeviceCallback callback = new IContinuationDeviceCallback() { + @Override + public void onConnected(ContinuationDeviceInfo deviceInfo) { + selectedDeviceId = deviceInfo.getDeviceId(); } - String[] items = new String[infoList.size()]; - int i = 0; - for (DeviceInfo info : infoList) { - items[i] = info.getDeviceType() + ", " + info.getDeviceName(); - i++; + @Override + public void onDisconnected(String deviceId) { + selectedDeviceId = ""; } - ListDialog listDialog = new ListDialog(getContext()); - listDialog.setItems(items); - listDialog.setTitleText("Choice a device"); - listDialog.setSize(DIALOG_WIDTH, MATCH_CONTENT); - listDialog.setAutoClosable(true); - listDialog.setOnSingleSelectListener((IDialog dailog, int position) -> { - selectedDeviceId = infoList.get(position).getDeviceId(); - try { - HiLog.info(LABEL_LOG, "initDistributedEnvironmentClick begin "); - DeviceManager.initDistributedEnvironment(selectedDeviceId, iInitCallback); - dailog.destroy(); - } catch (RemoteException e) { - HiLog.info(LABEL_LOG, "RemoteException happen"); - } - }); - listDialog.show(); - } + + @Override + public void onDeviceConnectDone(String deviceId, String deviceType) { + } + + @Override + public void onDeviceDisconnectDone(String deviceId) { + } + }; + + private RequestCallback requestCallback = new RequestCallback() { + @Override + public void onResult(int result) { + abilityToken = result; + } + }; private IInitCallback iInitCallback = new IInitCallback() { @Override @@ -284,5 +301,7 @@ public class MainAbilitySlice extends AbilitySlice implements IAbilityContinuati public void onStop() { super.onStop(); remoteAgentProxy = null; + continuationRegisterManager.unregister(abilityToken, null); + continuationRegisterManager.disconnect(); } } diff --git a/ability/DistributedScheduler/screenshots/device/main.png b/ability/DistributedScheduler/screenshots/device/main.png index 58f22c053a480ca34badebd7f5611a8ee4403af9..ebf15ab8b7281535b1fcc8085d1fcf4165928972 100644 Binary files a/ability/DistributedScheduler/screenshots/device/main.png and b/ability/DistributedScheduler/screenshots/device/main.png differ