哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

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

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

3天內(nèi)不再提示

分享一個有趣的鴻蒙分布式小游戲

OpenHarmony技術(shù)社區(qū) ? 來源:鴻蒙技術(shù)社區(qū) ? 作者:維京戰(zhàn)斧 ? 2021-11-01 14:29 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

今天給大家分享一個有趣的鴻蒙分布式小游戲:你畫我猜。

開發(fā)心得(如有錯誤還請大佬及時指正):

  • 分布式流轉(zhuǎn):一個 APP 應用在設備之間互相拉起遷移,只在一個終端上運行。

  • 分布式協(xié)同:一個 APP 同時在多個設備上運行,畫面實時共享,數(shù)據(jù)實時傳輸。

在工程創(chuàng)立之后,首先有個很重要的事情那就是驗權(quán)。

①這個分布式協(xié)同會用到一個權(quán)限接口,去 MainAbilitySlice 里面申請

分布式數(shù)據(jù)管理 ohos.permission.DISTRIBUTED_DATASYNC 允許不同設備間的數(shù)據(jù)交換。
voidgrantPermission(){//獲取驗證權(quán)限數(shù)據(jù)交互允許不同設備間的數(shù)據(jù)交換。
if(verifySelfPermission(DISTRIBUTED_DATASYNC)!=IBundleManager.PERMISSION_GRANTED){
if(canRequestPermission(DISTRIBUTED_DATASYNC)){
requestPermissionsFromUser(newString[]{DISTRIBUTED_DATASYNC},PERMISSION_CODE);
}
}
}

權(quán)限接口文檔鏈接

https://developer.harmonyos.com/cn/docs/documentation/doc-guides/security-permissions-available-0000001051089272

②權(quán)限申請

開發(fā)者需要在 config.json 文件中的“reqPermissions”字段中聲明所需要的權(quán)限。

{
"module":{
"reqPermissions":[
{
"name":"ohos.permission.CAMERA",
"reason":"$string:permreason_camera",
"usedScene":
{
"ability":["com.mycamera.Ability","com.mycamera.AbilityBackground"],
"when":"always"
}
},{
...
}
]
}
}
}

351c9594-3ac5-11ec-82a9-dac502259ad0.png
{
"name":"ohos.permission.DISTRIBUTED_DEVICE_STATE_CHANGE"//允許獲取分布式組網(wǎng)內(nèi)設備的狀態(tài)變化。
},
{
"name":"ohos.permission.GET_DISTRIBUTED_DEVICE_INFO"//允許獲取分布式組網(wǎng)內(nèi)的設備列表和設備信息。
},
{
"name":"ohos.permission.GRT_BUNDLE_INFO"//查詢其他應用的信息。
},
{
"name":"ohos.permission.INTERNET"//允許使用網(wǎng)絡socket。
}

應用權(quán)限列表文檔鏈接:

https://developer.harmonyos.com/cn/docs/documentation/doc-guides/security-permissions-guidelines-0000000000029886

再看頁面結(jié)構(gòu):

在 resources 下面的:
  • graphic:頁面樣式效果調(diào)配

  • layoput:此 demo 的 java UI 頁面布局結(jié)構(gòu)

主頁面入口布局代碼 ability_main:



<DirectionalLayout
xmlns:ohos="http://schemas.huawei.com/res/ohos"
ohos:height="match_parent"
ohos:width="match_parent"
ohos:orientation="vertical"
ohos:background_element="$graphic:background_button">

<Text
ohos:height="match_content"
ohos:width="match_content"
ohos:top_margin="150px"
ohos:layout_alignment="horizontal_center"
ohos:text="你好鴻蒙_你畫我猜"
ohos:text_size="38fp"
/>

<Image
ohos:id="$+id:imageComponent"
ohos:height="200vp"
ohos:width="1080"
ohos:top_margin="150px"
ohos:image_src="$media:HM"
/>

<Button
ohos:id="$+id:help_btn"
ohos:height="100vp"
ohos:width="300vp"
ohos:background_element="$graphic:background_button"
ohos:layout_alignment="horizontal_center"
ohos:left_padding="15vp"
ohos:right_padding="15vp"
ohos:text="進入游戲"
ohos:text_size="30vp"
ohos:top_margin="20vp">
Button>


DirectionalLayout>

游戲匹配頁面布局 math_game:



<DirectionalLayout
xmlns:ohos="http://schemas.huawei.com/res/ohos"
ohos:height="match_parent"
ohos:width="match_parent"
ohos:orientation="vertical">

<Button
ohos:id="$+id:help_btn"
ohos:height="match_content"
ohos:width="500px"
ohos:background_element="$graphic:background_begin"
ohos:layout_alignment="horizontal_center"
ohos:left_padding="15vp"
ohos:right_padding="15vp"
ohos:text="匹配對手"
ohos:text_size="30vp"
ohos:top_margin="200vp">
Button>
<Image
ohos:id="$+id:imageComponent"
ohos:height="200vp"
ohos:width="1080"
ohos:top_margin="100px"
ohos:image_src="$media:NHWC"

/>

DirectionalLayout>

MainAbilitySlice:

packagecom.huawei.codelab.slice;

importstaticohos.security.SystemPermission.DISTRIBUTED_DATASYNC;

importcom.huawei.codelab.ResourceTable;
importcom.huawei.codelab.utils.CommonData;
importcom.huawei.codelab.utils.LogUtil;
importohos.aafwk.ability.AbilitySlice;
importohos.aafwk.content.Intent;
importohos.aafwk.content.Operation;
importohos.agp.components.Component;
importohos.bundle.IBundleManager;



publicclassMainAbilitySliceextendsAbilitySlice{
privatestaticfinalStringTAG=CommonData.TAG+MainAbilitySlice.class.getSimpleName();

privatestaticfinalintPERMISSION_CODE=10000000;

@Override
publicvoidonStart(Intentintent){
super.onStart(intent);
super.setUIContent(ResourceTable.Layout_ability_main);
grantPermission();
initView();
}

voidgrantPermission(){//獲取驗證權(quán)限數(shù)據(jù)交互允許不同設備間的數(shù)據(jù)交換。
if(verifySelfPermission(DISTRIBUTED_DATASYNC)!=IBundleManager.PERMISSION_GRANTED){
if(canRequestPermission(DISTRIBUTED_DATASYNC)){
requestPermissionsFromUser(newString[]{DISTRIBUTED_DATASYNC},PERMISSION_CODE);
}
}
}
//
privatevoidinitView(){
findComponentById(ResourceTable.Id_help_btn).setClickedListener(newButtonClick());

}

privatevoidmathGame(){//數(shù)學游戲
LogUtil.info(TAG,"ClickResourceTableId_math_game");
IntentmathGameIntent=newIntent();
OperationoperationMath=newIntent.OperationBuilder().withBundleName(getBundleName())
.withAbilityName(CommonData.ABILITY_MAIN)
.withAction(CommonData.MATH_PAGE)
.build();
mathGameIntent.setOperation(operationMath);
startAbility(mathGameIntent);
}

//進入游戲
privateclassButtonClickimplementsComponent.ClickedListener{
@Override
publicvoidonClick(Componentcomponent){
mathGame();
}
}

}

MathGameAbilitySlice:

packagecom.huawei.codelab.slice;
importcom.huawei.codelab.ResourceTable;
importcom.huawei.codelab.devices.SelectDeviceDialog;
importcom.huawei.codelab.utils.CommonData;
importcom.huawei.codelab.utils.LogUtil;
importohos.aafwk.ability.AbilitySlice;
importohos.aafwk.content.Intent;
importohos.aafwk.content.Operation;
importohos.agp.components.Button;
importohos.agp.components.Component;
importohos.data.distributed.common.KvManagerConfig;
importohos.data.distributed.common.KvManagerFactory;
importohos.distributedschedule.interwork.DeviceInfo;
importohos.distributedschedule.interwork.DeviceManager;
importjava.util.ArrayList;
importjava.util.List;


publicclassMathGameAbilitySliceextendsAbilitySlice{
privatestaticfinalStringTAG=CommonData.TAG+MathGameAbilitySlice.class.getSimpleName();

privateButtonhelpBtn;

privateListdevices=newArrayList<>();

@Override
publicvoidonStart(Intentintent){
super.onStart(intent);
super.setUIContent(ResourceTable.Layout_math_game);
initView();

}

privatevoidinitView(){

if(findComponentById(ResourceTable.Id_help_btn)instanceofButton){
helpBtn=(Button)findComponentById(ResourceTable.Id_help_btn);
}
helpBtn.setClickedListener(newButtonClick());
}


privatevoidgetDevices(){
if(devices.size()>0){
devices.clear();
}
ListdeviceInfos=
DeviceManager.getDeviceList(ohos.distributedschedule.interwork.DeviceInfo.FLAG_GET_ONLINE_DEVICE);
LogUtil.info(TAG,"MathGameAbilitySlicedeviceInfossizeis:"+deviceInfos.size());
devices.addAll(deviceInfos);
showDevicesDialog();
}

privatevoidshowDevicesDialog(){
newSelectDeviceDialog(this,devices,deviceInfo->{
startLocalFa(deviceInfo.getDeviceId());
startRemoteFa(deviceInfo.getDeviceId());
}).show();
}

privatevoidstartLocalFa(StringdeviceId){
LogUtil.info(TAG,"startLocalFa......");
Intentintent=newIntent();
intent.setParam(CommonData.KEY_REMOTE_DEVICEID,deviceId);
intent.setParam(CommonData.KEY_IS_LOCAL,true);
Operationoperation=newIntent.OperationBuilder().withBundleName(getBundleName())
.withAbilityName(CommonData.ABILITY_MAIN)
.withAction(CommonData.DRAW_PAGE)
.build();
intent.setOperation(operation);
startAbility(intent);
}

privatevoidstartRemoteFa(StringdeviceId){
LogUtil.info(TAG,"startRemoteFa......");
StringlocalDeviceId=
KvManagerFactory.getInstance().createKvManager(newKvManagerConfig(this)).getLocalDeviceInfo().getId();
Intentintent=newIntent();
intent.setParam(CommonData.KEY_REMOTE_DEVICEID,localDeviceId);
intent.setParam(CommonData.KEY_IS_LOCAL,false);
Operationoperation=newIntent.OperationBuilder().withDeviceId(deviceId)
.withBundleName(getBundleName())
.withAbilityName(CommonData.ABILITY_MAIN)
.withAction(CommonData.DRAW_PAGE)
.withFlags(Intent.FLAG_ABILITYSLICE_MULTI_DEVICE)
.build();
intent.setOperation(operation);
startAbility(intent);
}

privateclassButtonClickimplementsComponent.ClickedListener{
@Override
publicvoidonClick(Componentcomponent){
getDevices();//啟動機器匹配
}
}
}

責任編輯:haq


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 鴻蒙系統(tǒng)
    +關(guān)注

    關(guān)注

    183

    文章

    2642

    瀏覽量

    70120
  • HarmonyOS
    +關(guān)注

    關(guān)注

    80

    文章

    2157

    瀏覽量

    36293

原文標題:鴻蒙版你畫我猜,請接招!

文章出處:【微信號:gh_834c4b3d87fe,微信公眾號:OpenHarmony技術(shù)社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    分布式迭代求解策略:分布式混合電推進系統(tǒng)飛發(fā)體化設計與能量管理協(xié)同優(yōu)化方法

    隨著全球航空業(yè)對綠色環(huán)保要求的不斷提高,分布式混合電推進系統(tǒng)作為傳統(tǒng)航空動力向全電飛行器過渡的關(guān)鍵技術(shù),展現(xiàn)出巨大的發(fā)展?jié)摿Α1疚膰@半渦電分布式推進系統(tǒng)的動態(tài)實時建模與控制方法展開系統(tǒng)研究。
    的頭像 發(fā)表于 03-27 08:54 ?193次閱讀
    <b class='flag-5'>分布式</b>迭代求解策略:<b class='flag-5'>分布式</b>混合電推進系統(tǒng)飛發(fā)<b class='flag-5'>一</b>體化設計與能量管理協(xié)同優(yōu)化方法

    TiDB分布式數(shù)據(jù)庫運維實踐

    TiDB 是 PingCAP 開發(fā)的開源分布式關(guān)系型數(shù)據(jù)庫,兼容 MySQL 5.7 協(xié)議,底層存儲基于 TiKV(分布式 KV 存儲)和 RocksDB。它解決的核心問題是:當單機 MySQL 無法承載數(shù)據(jù)量或?qū)懭雺毫r,提供
    的頭像 發(fā)表于 03-04 15:44 ?283次閱讀

    分布式 IO 選型注意事項

    定義? 分布式IO是種脫離傳統(tǒng)集中式 IO 柜,將輸入 / 輸出模塊分散部署在工業(yè)現(xiàn)場設備附近,通過工業(yè)總線(如 Profinet、EtherNet/IP、Modbus TCP 等)與 PLC、MES 等控制系統(tǒng)實現(xiàn)數(shù)據(jù)交互的工業(yè)控制設備。其核心架構(gòu)由 “主站 +
    的頭像 發(fā)表于 12-30 14:14 ?515次閱讀
    <b class='flag-5'>分布式</b> IO 選型注意事項

    SC-3568HA:解鎖鴻蒙全權(quán)限API與分布式能力的工業(yè)控制平臺

    傳統(tǒng)嵌入開發(fā)面臨硬件碎片化、高權(quán)限功能缺失、分布式協(xié)同復雜及自動化測試不足等痛點。SC-3568HA開發(fā)板基于鴻蒙系統(tǒng),通過統(tǒng)內(nèi)核抽象層和硬件驅(qū)動框架解決兼容問題,開放全量系統(tǒng)AP
    的頭像 發(fā)表于 12-18 11:27 ?7561次閱讀
    SC-3568HA:解鎖<b class='flag-5'>鴻蒙</b>全權(quán)限API與<b class='flag-5'>分布式</b>能力的工業(yè)控制平臺

    深入理解分布式共識算法 Raft

    “不可靠的網(wǎng)絡”、“不穩(wěn)定的時鐘”和“節(jié)點的故障”都是在分布式系統(tǒng)中常見的問題,在文章開始前,我們先來看下:如果在分布式系統(tǒng)中網(wǎng)絡不可靠會發(fā)生什么樣的問題。 有以下 3 服務構(gòu)成的
    的頭像 發(fā)表于 11-27 14:51 ?444次閱讀
    深入理解<b class='flag-5'>分布式</b>共識算法 Raft

    如何解決分布式光伏計量難題?

    分布式光伏成增長主力 據(jù)《2025-2030年中國分布式光伏行業(yè)市場前景預測及未來發(fā)展趨勢研究報告》顯示,2024年中國分布式光伏新增裝機118.18GW,同比增長23%,占光伏新增裝機總量的43
    的頭像 發(fā)表于 11-07 14:55 ?416次閱讀
    如何解決<b class='flag-5'>分布式</b>光伏計量難題?

    【節(jié)能學院】Acrel-1000DP分布式光伏監(jiān)控系統(tǒng)在奉賢平高食品 4.4MW 分布式光伏中應用

    摘要:在“雙碳”和新型電力系統(tǒng)建設背景下,分布式光伏接入比例不斷提高,對配電網(wǎng)電壓、調(diào)度運行及調(diào)峰等環(huán)節(jié)造成強烈沖擊。本文設計包含平臺層、設備層二層架構(gòu)體系的分布式光伏管控平臺,以及小容量工商業(yè)
    的頭像 發(fā)表于 08-23 08:04 ?3661次閱讀
    【節(jié)能學院】Acrel-1000DP<b class='flag-5'>分布式</b>光伏監(jiān)控系統(tǒng)在奉賢平高食品 4.4MW <b class='flag-5'>分布式</b>光伏中應用

    分布式光伏發(fā)電監(jiān)測系統(tǒng)技術(shù)方案

    分布式光伏發(fā)電監(jiān)測系統(tǒng)技術(shù)方案 柏峰【BF-GFQX】、系統(tǒng)目標 :分布式光伏發(fā)電監(jiān)測系統(tǒng)旨在通過智能化的監(jiān)測手段,實現(xiàn)對分布式光伏電站的全方位、高精度、實時化管理。該系統(tǒng)能
    的頭像 發(fā)表于 08-22 10:51 ?3467次閱讀
    <b class='flag-5'>分布式</b>光伏發(fā)電監(jiān)測系統(tǒng)技術(shù)方案

    鍵部署無損網(wǎng)絡:EasyRoCE助力分布式存儲效能革命

    分布式存儲的性能瓶頸往往在于網(wǎng)絡。如何構(gòu)建高帶寬、超低時延、零丟包的無損網(wǎng)絡,是釋放分布式存儲全部潛力、賦能企業(yè)關(guān)鍵業(yè)務(如實時數(shù)據(jù)庫、AI訓練、高性能計算)的關(guān)鍵挑戰(zhàn)。
    的頭像 發(fā)表于 08-04 11:34 ?1817次閱讀
    <b class='flag-5'>一</b>鍵部署無損網(wǎng)絡:EasyRoCE助力<b class='flag-5'>分布式</b>存儲效能革命

    分布式光伏總出問題?安科瑞分布式光伏監(jiān)控系統(tǒng)來“救場”

    、分布式光伏的痛點大揭秘 在 “雙碳” 目標的大力推動下,分布式光伏作為綠色能源領域的重要力量,正以前所未有的速度蓬勃發(fā)展,越來越多的企業(yè)和家庭選擇安裝分布式光伏系統(tǒng)。然而,隨著
    的頭像 發(fā)表于 07-16 16:50 ?948次閱讀
    <b class='flag-5'>分布式</b>光伏總出問題?安科瑞<b class='flag-5'>分布式</b>光伏監(jiān)控系統(tǒng)來“救場”

    雙電機分布式驅(qū)動汽車高速穩(wěn)定性機電耦合控制

    和控制器的工作強度。 純分享帖,需要者可點擊附件免費獲取完整資料~~~*附件:雙電機分布式驅(qū)動汽車高速穩(wěn)定性機電耦合控制.pdf【免責聲明】本文系網(wǎng)絡轉(zhuǎn)載,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請第時間告知,刪除內(nèi)容!
    發(fā)表于 06-18 16:37

    鴻蒙5開發(fā)寶藏案例分享---多開發(fā)實例(游戲

    十年前藏的現(xiàn)金樣驚喜!)這些藏在文檔深處的\"武功秘籍\",能幫我們輕松實現(xiàn)分布式游戲、跨端協(xié)同這些聽起來很酷的功能??焐宪嚕瑤憬怄i鴻蒙開發(fā)的正確姿勢!
    發(fā)表于 06-03 18:22

    曙光存儲領跑中國分布式存儲市場

    近日,賽迪顧問發(fā)布《中國分布式存儲市場研究報告(2025)》,指出2024 年中國分布式存儲市場首次超過集中式存儲,規(guī)模達 198.2 億元,增速 43.7%。
    的頭像 發(fā)表于 05-19 16:50 ?1454次閱讀

    分布式光纖傳感的用途

    生態(tài)災難。這些場景中,種名為"分布式光纖傳感"的技術(shù)正悄然編織著張無形的感知網(wǎng)絡,用光信號的"語言"實時翻譯著環(huán)境的細微變化。 、技術(shù)原理:光與物質(zhì)的"對話"
    的頭像 發(fā)表于 05-11 17:26 ?1565次閱讀

    分布式光伏電力問題層出不窮?安科瑞分布式光伏運維系統(tǒng)來“救場”

    分布式光伏電力運維,痛點大揭秘? ? 分布式光伏作為實現(xiàn)綠色能源轉(zhuǎn)型的關(guān)鍵環(huán),近年來在我國得到了迅猛發(fā)展。國家能源局數(shù)據(jù)顯示,截至 2023 年底,中國
    的頭像 發(fā)表于 05-07 17:14 ?1093次閱讀
    <b class='flag-5'>分布式</b>光伏電力問題層出不窮?安科瑞<b class='flag-5'>分布式</b>光伏運維系統(tǒng)來“救場”
    特克斯县| 通江县| 玛沁县| 孟村| 马龙县| 洛宁县| 灵石县| 简阳市| 庐江县| 合阳县| 靖江市| 邻水| 巴林左旗| 万源市| 通化市| 靖西县| 大港区| 宜昌市| 寻甸| 星子县| 阜康市| 德兴市| 曲麻莱县| 泰顺县| 新泰市| 孝义市| 阿城市| 鄂尔多斯市| 都兰县| 巢湖市| 天津市| 惠来县| 鸡东县| 赤水市| 同江市| 什邡市| 余姚市| 林周县| 凤城市| 遂溪县| 伊宁市|