chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

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

分享一個(gè)有趣的鴻蒙分布式小游戲

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

掃碼添加小助手

加入工程師交流群

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

開(kāi)發(fā)心得(如有錯(cuò)誤還請(qǐng)大佬及時(shí)指正):

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

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

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

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

分布式數(shù)據(jù)管理 ohos.permission.DISTRIBUTED_DATASYNC 允許不同設(shè)備間的數(shù)據(jù)交換。
voidgrantPermission(){//獲取驗(yàn)證權(quán)限數(shù)據(jù)交互允許不同設(shè)備間的數(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)限申請(qǐng)

開(kāi)發(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)設(shè)備的狀態(tài)變化。
},
{
"name":"ohos.permission.GET_DISTRIBUTED_DEVICE_INFO"//允許獲取分布式組網(wǎng)內(nèi)的設(shè)備列表和設(shè)備信息。
},
{
"name":"ohos.permission.GRT_BUNDLE_INFO"//查詢(xún)其他應(yīng)用的信息。
},
{
"name":"ohos.permission.INTERNET"//允許使用網(wǎng)絡(luò)socket。
}

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

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

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

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

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

主頁(yè)面入口布局代碼 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="你好鴻蒙_你畫(huà)我猜"
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="進(jìn)入游戲"
ohos:text_size="30vp"
ohos:top_margin="20vp">
Button>


DirectionalLayout>

游戲匹配頁(yè)面布局 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="匹配對(duì)手"
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(){//獲取驗(yàn)證權(quán)限數(shù)據(jù)交互允許不同設(shè)備間的數(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ù)學(xué)游戲
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);
}

//進(jìn)入游戲
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();//啟動(dòng)機(jī)器匹配
}
}
}

責(zé)任編輯:haq


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

    關(guān)注

    183

    文章

    2642

    瀏覽量

    69314
  • HarmonyOS
    +關(guān)注

    關(guān)注

    80

    文章

    2146

    瀏覽量

    35511

原文標(biāo)題:鴻蒙版你畫(huà)我猜,請(qǐng)接招!

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

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

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

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

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

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

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

    雙電機(jī)分布式驅(qū)動(dòng)汽車(chē)高速穩(wěn)定性機(jī)電耦合控制

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

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

    十年前藏的現(xiàn)金樣驚喜?。┻@些藏在文檔深處的\"武功秘籍\",能幫我們輕松實(shí)現(xiàn)分布式游戲、跨端協(xié)同這些聽(tīng)起來(lái)很酷的功能。快上車(chē),帶你解鎖鴻蒙開(kāi)發(fā)的正確姿勢(shì)!
    發(fā)表于 06-03 18:22

    曙光存儲(chǔ)領(lǐng)跑中國(guó)分布式存儲(chǔ)市場(chǎng)

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

    分布式光伏電力問(wèn)題層出不窮?安科瑞分布式光伏運(yùn)維系統(tǒng)來(lái)“救場(chǎng)”

    分布式光伏電力運(yùn)維,痛點(diǎn)大揭秘? ? 分布式光伏作為實(shí)現(xiàn)綠色能源轉(zhuǎn)型的關(guān)鍵環(huán),近年來(lái)在我國(guó)得到了迅猛發(fā)展。國(guó)家能源局?jǐn)?shù)據(jù)顯示,截至 2023 年底,中國(guó)
    的頭像 發(fā)表于 05-07 17:14 ?654次閱讀
    <b class='flag-5'>分布式</b>光伏電力問(wèn)題層出不窮?安科瑞<b class='flag-5'>分布式</b>光伏運(yùn)維系統(tǒng)來(lái)“救場(chǎng)”

    使用VirtualLab Fusion中分布式計(jì)算的AR波導(dǎo)測(cè)試圖像模擬

    總計(jì)算時(shí)間超過(guò)31小時(shí)。通過(guò)使用個(gè)由8個(gè)多核PC組成的網(wǎng)絡(luò),提供35個(gè)客戶(hù)端分布式計(jì)算,將模擬時(shí)間減少到1小時(shí)5分鐘。基本模擬任務(wù)基本任務(wù)
    發(fā)表于 04-10 08:48

    分布式光伏如何實(shí)現(xiàn)防逆流?

    分布式光伏如何實(shí)現(xiàn)防逆流
    的頭像 發(fā)表于 03-24 13:31 ?586次閱讀
    <b class='flag-5'>分布式</b>光伏如何實(shí)現(xiàn)防逆流?

    分布式云化數(shù)據(jù)庫(kù)有哪些類(lèi)型

    分布式云化數(shù)據(jù)庫(kù)有哪些類(lèi)型?分布式云化數(shù)據(jù)庫(kù)主要類(lèi)型包括:關(guān)系型分布式數(shù)據(jù)庫(kù)、非關(guān)系型分布式數(shù)據(jù)庫(kù)、新SQL分布式數(shù)據(jù)庫(kù)、以列方式存儲(chǔ)數(shù)據(jù)、
    的頭像 發(fā)表于 01-15 09:43 ?851次閱讀

    AIGC入門(mén)及鴻蒙入門(mén)

    模型,能夠生成與給定文本描述相符的圖像。 鴻蒙系統(tǒng)入門(mén) 1. 基礎(chǔ)知識(shí): 鴻蒙系統(tǒng)(HarmonyOS)是華為推出的分布式操作系統(tǒng),旨在實(shí)現(xiàn)跨設(shè)備、跨平臺(tái)的無(wú)縫協(xié)同體驗(yàn)。
    發(fā)表于 01-13 10:32

    基于ptp的分布式系統(tǒng)設(shè)計(jì)

    在現(xiàn)代分布式系統(tǒng)中,精確的時(shí)間同步對(duì)于確保數(shù)據(jù)致性、系統(tǒng)穩(wěn)定性和性能至關(guān)重要。PTP(Precision Time Protocol)是種網(wǎng)絡(luò)協(xié)議,用于在分布式系統(tǒng)中實(shí)現(xiàn)高精度的時(shí)
    的頭像 發(fā)表于 12-29 10:09 ?953次閱讀

    HarmonyOS Next 應(yīng)用元服務(wù)開(kāi)發(fā)-分布式數(shù)據(jù)對(duì)象遷移數(shù)據(jù)文件資產(chǎn)遷移

    Error: \', JSON.stringify(err) ?? \'\'); }); } } 在對(duì)端UIAbility的onCreate()/onNewWant()中,通過(guò)加入與源端致的分布式
    發(fā)表于 12-24 10:11

    HarmonyOS Next 應(yīng)用元服務(wù)開(kāi)發(fā)-分布式數(shù)據(jù)對(duì)象遷移數(shù)據(jù)權(quán)限與基礎(chǔ)數(shù)據(jù)

    ) ?? \'\'); }); } } 在對(duì)端UIAbility的onCreate()/onNewWant()中,通過(guò)加入與源端致的分布式數(shù)據(jù)對(duì)象組網(wǎng)進(jìn)行數(shù)據(jù)恢復(fù)。 創(chuàng)建空的分布式數(shù)據(jù)對(duì)象,用于接收
    發(fā)表于 12-24 09:40

    FPGA打磚塊小游戲設(shè)計(jì)思路

    ? 交流問(wèn)題 ? Q :FPGA打磚塊小游戲,如何基于FPGA用verilog語(yǔ)言在Vivado平臺(tái)上寫(xiě)打磚塊小游戲,最好能用到PS2與VGA。 A :以下是個(gè)基于 FPGA? Ve
    的頭像 發(fā)表于 12-09 16:57 ?1449次閱讀