色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

OpenHarmony如何啟動FA(本地和遠程)

ArkUI詳解 ? 來源:鴻蒙實驗室 ? 作者:鴻蒙實驗室 ? 2022-07-02 13:41 ? 次閱讀

大家好,今天我們來一起學習分布式相關的內容,其實對于分布式任務調度,就是對數據管理的另一種形式

啟動本地設備FA

首先創建一個項目

如圖所示:

poYBAGK_2nSAJIoQAAH2eQ8Zgm0872.png

點擊finish即可

然后我們接下來先進行一些基礎設置

我們要在DAYU200開發板上運行這個實例,所以要做一個簽名設置

點擊File--- Project Struct,

pYYBAGK_2naAM15EAAHq13OeHQc987.png

然后點擊Signing Configs 完成簽名設置

poYBAGK_2nmACjC0AAJyAsgyAZE630.png

點擊ok就會完成自動簽名。到了這兒,我們的第一步也算是完成了,接下來我們看一下下一步如何操作

回到我們今天的主題,我們是要啟動本地的另一個FA,但是目前只有一個,所以我們這個時候需要再創建一個

在entry模塊依次點擊New-Ability-PageAbility,就可以創建另一個FA,我們命名為SecondAbility

pYYBAGK_2n6AZZmeAAUQUCXfP7g810.png

poYBAGK_2n-AS2SEAADeHNUv5zc606.png

如下圖所示,我們已經創建成功

pYYBAGK_2oCAb44AAAEIV_W2xw0369.png

修改SecondAbility中的默認message

@State message: string = 'SecondAbility'

?

到這兒我們的第二步就算完成了

由于我們啟動的是本地的FA,后邊為了區別啟動遠程FA,所以我們需要對文件進行一個重命名,這樣方便我們認識。

我們點擊MainAbility‘中的index.ets,右擊進行重命名

poYBAGK_2oGAAHjzAACNUJNy1Q4451.png

完成以上的步驟,編輯器會幫助我們對onfig.json中對項目進行重構

{

"app"

: {

"vendor"

:

"example"

,

"bundleName"

:

"com.jianguo.openharmony"

,

"version"

: {

"code"

:

1000000

,

"name"

:

"1.0.0"

}

},

"deviceConfig"

: {},

"module"

: {

"mainAbility"

:

".MainAbility"

,

"deviceType"

: [

"phone"

,

"tablet"

],

"abilities"

: [

{

"skills"

: [

{

"entities"

: [

"entity.system.home"

],

"actions"

: [

"action.system.home"

]

}

],

"orientation"

:

"unspecified"

,

"visible"

:

true

,

"srcPath"

:

"MainAbility"

,

"name"

:

".MainAbility"

,

"srcLanguage"

:

"ets"

,

"icon"

:

"$media:icon"

,

"description"

:

"$string:MainAbility_desc"

,

"formsEnabled"

:

false

,

"label"

:

"$string:MainAbility_label"

,

"type"

:

"page"

,

"launchType"

:

"standard"

},

{

"orientation"

:

"unspecified"

,

"srcPath"

:

"SecondAbility"

,

"name"

:

".SecondAbility"

,

"srcLanguage"

:

"ets"

,

"icon"

:

"$media:icon"

,

"description"

:

"$string:SecondAbility_desc"

,

"formsEnabled"

:

false

,

"label"

:

"$string:SecondAbility_label"

,

"type"

:

"page"

,

"launchType"

:

"standard"

}

],

"distro"

: {

"moduleType"

:

"entry"

,

"installationFree"

:

false

,

"deliveryWithInstall"

:

true

,

"moduleName"

:

"entry"

},

"package"

:

"com.example.entry"

,

"srcPath"

:

""

,

"name"

:

".entry"

,

"js"

: [

{

"mode"

: {

"syntax"

:

"ets"

,

"type"

:

"pageAbility"

},

"pages"

: [

"pages/start_local_fa"

],

"name"

:

".MainAbility"

,

"window"

: {

"designWidth"

:

720

,

"autoDesignWidth"

:

false

}

},

{

"mode"

: {

"syntax"

:

"ets"

,

"type"

:

"pageAbility"

},

"pages"

: [

"pages/index"

],

"name"

:

".SecondAbility"

,

"window"

: {

"designWidth"

:

720

,

"autoDesignWidth"

:

false

}

}

]

}

}

接下來我們就看一下最關鍵的一步,如何啟動本地FA

我們可以利用一個button按鈕來對其進行跳操作

最主要的就是onclick里面的事件

如下圖所示:

使用的時候注意導入包:

import featureAbiltty from '@ohos.ability.featureAbility'

featureAbiltty.startAbility({

want:

{

//設備Id,本機默認為空

deviceId:"",

//app名稱,在config.json的bundleName

bundleName:"com.jianguo.openharmony",

//頁面名稱,注意包名

abilityName:"com.example.entry.SecondAbility"

?

?

}

然后我對上面的

deviceId:進行說明本機默認為空,

bundleName:在config.json的bundleName

abilityName:頁面名稱,注意包名

pYYBAGK_2oKABSuCAACnuqAvp5U058.png

然后我們在DATU20運行

發現可以跳轉,那么我們就實現了這個功能

跨設備啟動FAs

接下來我們看一下如何啟動遠程的deviceId

在這之前,我們需要做的事就是,在config.json配置權限

非敏感權限在這兒定義就好,如果是敏感權限,就要在運行時發送彈窗的形式去處理。

"reqPermissions": [

{

"name": "ohos.permission.DISTRIBUTED_DATASYNC"

}

]

poYBAGK_2oOAef7iAACDFjmNyYs309.png

遠程啟動注意點:

權限deviceId

動態申請權限

//設備管理器

import deviceMAnager from'@ohos.distributedHardware.deviceManager'

import featureAbilty from '@ohos.ability.featureAbility'

//設備管理器

import deviceMAnager from '@ohos.distributedHardware.deviceManager'

//遠端app信息

import bundle from '@ohos.bundle';

import abilityAccessCtrl from '@ohos.abilityAccessCtrl';

?

//動態申請權限,彈窗的形式,可以通用,注意修改兩個地方,一個是包名,一個是權限列表

async function requestPermision() {

let array: Array = ["ohos.permission.DISTRIBUTED_DATASYNC"]

?

const appInfo = await bundle.getApplicationInfo("com.jianguo.openharmony", 0, 100)

let tolenId = appInfo.accessTokenId;

const atManger = abilityAccessCtrl.createAtManager();

let requestPressions: Array = []

//遍歷權限是否通過

for (let i = 0;i < array.length; i++) {

let result = await atManger.verifyAccessToken(tolenId, array[i]);

if (result != abilityAccessCtrl.GrantStatus.PERMISSION_DENIED) {

requestPressions.push(array[i]);

}

}

if (requestPressions.length == 0 || requestPressions == []) {

return;

?

}

?

let context = featureAbilty.getContext();

context.requestPermissionsFromUser(requestPressions, 1, (data) => {

?

console.info("XXXXXX data" + JSON.stringify(data))

})

}

?

@Entry

@Component

struct Index {

@State message: string = 'MainAbility'

?

aboutToAppear() {

//頁面即將顯示的時候處理,運行時發送彈窗的形式去處理

requestPermision();

?

?

}

?

build() {

Row() {

Column() {

Text(this.message)

.fontSize(50)

.fontWeight(FontWeight.Bold)

Button("跳轉遠程SecondAbility", {

type: ButtonType.Capsule

}).backgroundColor(Color.Orange).onClick((event: ClickEvent) => {

?

?

deviceMAnager.createDeviceManager("com.jianguo.openharmony", (err, value) => {

?

?

if (!err) {

let devManager = value;

//同步方式獲得可信任列表

let deviceList = devManager.getTrustedDeviceListSync();

featureAbilty.startAbility({

want:

{

//設備Id,本機默認為空,這里只有兩臺設備,所以用數組[0]表示

deviceId: deviceList[0].deviceId,

//app名稱,在config.json的bundleName

bundleName: "com.jianguo.openharmony",

//頁面名稱,注意包名

abilityName: "com.example.entry.SecondAbility"

?

?

}

}).then((value) => {

?

console.log("Succes Data" + JSON.stringify(value))

}).catch((error) => {

console.log("failed Data" + JSON.stringify(error))

})

}

})

?

?

}).width(199)

}

.width('100%')

}

.height('100%')

}

}

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • HarmonyOS
    +關注

    關注

    79

    文章

    1979

    瀏覽量

    30274
  • OpenHarmony
    +關注

    關注

    25

    文章

    3727

    瀏覽量

    16382
收藏 人收藏

    評論

    相關推薦

    Git命令之本地分支與遠程分支關聯和解除

    在實際的工作生活中,往往需要將本地的分支和遠程分支關聯,這樣我們就可以使用git pull命令來更新拉取最新的代碼,并使用git push命令將自己本地的修改推送到遠程倉庫。但是如果此
    的頭像 發表于 12-15 09:27 ?3282次閱讀
    Git命令之<b class='flag-5'>本地</b>分支與<b class='flag-5'>遠程</b>分支關聯和解除

    本地LabVIEW訪問遠程mysql

    之前只做過LabVIEW對本地計算機ACCESS和SQL SERVER的訪問,使用的是LabSQL工具,OLEDB方式,不創建DSN,直接寫入連接字符串然后SQL語句對本地數據庫進行操作,對遠程
    發表于 12-15 14:38

    HarmonyOS教程一基于分布式調度的能力,實現遠程FA啟動

    1. 介紹開發者在應用中集成分布式調度能力,通過調用指定能力的分布式接口,實現跨設備能力調度。根據Ability模板及意圖的不同,分布式任務調度向開發者提供六種能力:啟動遠程FA(Feature
    發表于 09-10 10:07

    OpenHarmony JS在啟動DevEco Studio的遠程模擬器時,出現HDC異常怎么解決

    最近在研究OpenHarmony的JS應用開發,在調試應用時,在啟動DevEco Studio的遠程模擬器時,出現HDC異常問題;然而SDK中的toolchains目錄下面擁有hdc程序
    發表于 04-08 11:27

    DevEco Studio中的真機無法啟動遠程FA怎么解決?

    根據Codelabs中的“( 基于分布式調度啟動遠程FA )”實驗,在DevEcoStudio中的遠程模擬器中可正常啟動另一臺手機中的
    發表于 05-09 11:58

    OpenHarmony開發之Ability架構

    的線程。每個Ability綁定一個獨立的JSRuntime實例,因此Ability之間是隔離的。相關實例針對Ability開發,有以下相關實例可供參考:[分布式調度啟動遠程FA][分布式新聞客戶端
    發表于 05-12 15:12

    OpenHarmony3.1release連接服務失敗是為什么?怎么解決?

    (serviceAbility)可以正常連接;2、使用JS寫的本地service就無法正常連接測試過以下幾種情況,1、使用JS寫的FA上點擊按鈕連接本地service失敗;2、使用JS寫的FA
    發表于 06-01 11:35

    請問openharmony應用必須使用開發板才能運行嗎?

    openharmony應用必須使用開發板才能運行嗎?本地模擬器或者遠程模擬器什么時候會出來?harmonyos真機以后會兼容openharmony應用嗎?
    發表于 06-14 11:13

    OpenHarmony分布式調度啟動遠程FA之路

    1.介紹OpenHarmony提供了分布式能力,能夠實現在同一網絡下對遠程設備Ability的拉起。本篇Codelab,我們將一起開啟OpenHarmony分布式調度啟動
    發表于 07-26 14:59

    HarmonyOS/OpenHarmony應用開發-FA卡片開發體驗

    :HarmonyOSOpenHarmony應用開發-FA卡片開發體驗.docx示例代碼:https://gitee.com/jltfcloudcn/jump_to/tree/master/FA
    發表于 12-06 14:48

    HarmonyOS/OpenHarmony應用開發-FA模型綜述

    /documentation/doc-guides/fa-brief-0000001333640861*附件:HarmonyOSOpenHarmony應用開發-FA模型綜述.docx
    發表于 12-07 10:39

    Linux平臺智能家居的本地監控與遠程監控

    Linux平臺智能家居的本地監控與遠程監控
    發表于 10-26 08:24 ?14次下載
    Linux平臺智能家居的<b class='flag-5'>本地</b>監控與<b class='flag-5'>遠程</b>監控

    鴻蒙開發:啟動本地PageAbility

    PageAbility相關的能力通過featureAbility提供,啟動本地Ability通過featureAbility中的startAbility接口實現。
    的頭像 發表于 06-18 09:29 ?304次閱讀
    鴻蒙開發:<b class='flag-5'>啟動</b><b class='flag-5'>本地</b>PageAbility

    鴻蒙開發Ability Kit程序框架服務:FA模型啟動Stage模型UIAbility

    本文介紹FA模型的三種應用組件如何啟動Stage模型的UIAbility組件。
    的頭像 發表于 06-25 16:00 ?377次閱讀
    鴻蒙開發Ability Kit程序框架服務:<b class='flag-5'>FA</b>模型<b class='flag-5'>啟動</b>Stage模型UIAbility

    鴻蒙開發Ability Kit程序框架服務:Stage模型啟動FA模型PageAbility

    本小節介紹Stage模型的兩種應用組件如何啟動FA模型的PageAbility組件。
    的頭像 發表于 06-26 09:50 ?378次閱讀
    鴻蒙開發Ability Kit程序框架服務:Stage模型<b class='flag-5'>啟動</b><b class='flag-5'>FA</b>模型PageAbility
    主站蜘蛛池模板: 国产GV天堂亚洲国产GV刚刚碰| 龙广在线收听| 青柠视频在线观看高清HD| 99在线免费| 歪歪漫画羞羞漫画国产| 精品午夜久久影视| 2022国产精品不卡a| 日本视频一区二区免费观看| 国产三级视频在线| 2019一級特黃色毛片免費看| 日本无码免费久久久精品| 国产亚洲精品久久久久小| 中文有码中文字幕免费视频| 91免费永久在线地址| 热热久久超碰精品中文字幕| 国产精品97久久久久久AV色戒 | 强奸日本美女小游戏| 国产精品看高国产精品不卡| 永久免费精品影视网站| 日本亚洲精品色婷婷在线影院| 国产在线播放KKK| 99热在线精品免费全部my| 鞋奴的视频VK| 欧美高清视频www夜色资源网| 国产午夜精品美女免费大片| 99视频国产在线| 亚洲色爽视频在线观看| 色就色综合| 蜜芽最新域名解析网站| 国产精品视频yy9099| 999视频精品全部免费观看| 亚洲AV精品无码成人| 欧美区一区二| 久久影院一区| 国产一区二区三区影院| 成人做视频免费| 91交换论坛| 一本道本线中文无码| 无套内谢大学生A片| 日本高清不卡码无码v亚洲| 麻豆成人啪啪色婷婷久久|