一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

如何基于App SDK快速地開發(fā)一個IoT App

電子設計 ? 來源:電子設計 ? 作者:電子設計 ? 2020-12-08 23:21 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、背景及大綱介紹

在如今物聯(lián)網(wǎng)DCM(Device、Connect、Manage)的大框架下,有一個應用層來分析和處理數(shù)據(jù),是必備技能。但是,對于一個公司來說,因為研發(fā)能力或者研發(fā)時間的原因,可能很難短期內(nèi)完全自己開發(fā)出一個適用的App來。寫代碼、封裝通用功能、還要考慮其他多種功能,統(tǒng)統(tǒng)都是很耗費時間的事情。現(xiàn)在很多物聯(lián)網(wǎng)平臺公司,為了幫助開發(fā)者解決此類問題,也想出了相應的解決辦法,提供相應的SDK就是其中一種。

今天抽空以基于App SDK完成智能家居App的開發(fā)為例。通過這一篇文章,你就能通過創(chuàng)建App SDK、集成SDK、創(chuàng)建家庭、設備配網(wǎng)和設備控制等步驟,完整地完成一款智能家居App的開發(fā)。

先列一下開發(fā)大綱:

創(chuàng)建App SDK
集成SDK
注冊和登錄
創(chuàng)建家庭
設備配網(wǎng)
設備控制
我們再來簡單介紹一下Tuya App SDK:

涂鴉智能 App SDK 專為 IoT 移動 App 開發(fā)打造,提供豐富組件和示例代碼,開發(fā)者可以快速實現(xiàn)移動 App 對智能設備的連接、控制以及豐富的智能場景應用。

產(chǎn)品的優(yōu)勢在于:

低門檻快速集成:快速集成 SDK,提供示例代碼、Demo App、接入案例等,低門檻輕松上手;
開發(fā)組件豐富:組件化開發(fā),提供垂直品類 SDK、UI 業(yè)務包等功能組件,開發(fā)者根據(jù)需求靈活組合;
智能功能全面:全面覆蓋用戶、設備、智能場景等多種功能模塊,開發(fā)者只需簡單實現(xiàn) UI 層代碼;
主流通信協(xié)議兼容:同一 App 中支持添加和使用主流通信協(xié)議產(chǎn)品,輕松實現(xiàn) All In One – App;
全球數(shù)據(jù)安全保障:雙通道安全加密,五重安全策略,全球數(shù)據(jù)安全合規(guī)認證,全面保障用戶數(shù)據(jù)隱私安全;
全球服務穩(wěn)定:全球化智能云部署,讓每一個 App 都輕松擁有億級海量設備和千萬級用戶并發(fā)處理能力。
App SDK的技術架構如下:

二、如何基于 App SDK 開發(fā)一個 App

準備就緒,我們來開始開發(fā)!

(一)創(chuàng)建App SDK

1. 注冊開發(fā)者賬號

前往 涂鴉智能開發(fā)平臺 注冊開發(fā)者賬號、創(chuàng)建產(chǎn)品、創(chuàng)建功能點等,具體流程請參考接入流程

2. 創(chuàng)建SDK應用

涂鴉 IoT 平臺中 “App 工作臺” 中點擊 “App SDK”,點擊“創(chuàng)建 App”。

3. 填寫 App 相關信息,點擊確認。

  • 應用名稱:填寫你的 App 名稱。
  • iOS 應用包名:填寫你的 iOS App 包名(建議格式:com.xxxxx.xxxxx)。
  • 安卓應用包名:填寫你的安卓 App 包名(兩者可以保持一致,也可以不一致)。
  • 渠道標識符:不是必填項,如果不填寫,系統(tǒng)會根據(jù)包名自動生成。

你可以根據(jù)實際需求選擇需要的選擇方案,支持多選,然后根據(jù) Podfile 和 Gradle 進行 SDK 的集成。

點擊獲取密碼,獲取 SDK 的 AppKey,AppSecret,安全圖片等信息。

(二)集成 SDK

1. 使用 CocoaPods 快速集成

請注意:SDK 最低支持系統(tǒng)版本 9.0

在 Podfile 文件中添加以下內(nèi)容:

`platform :ios, '9.0'

 target 'Your_Project_Name' do

    pod "TuyaSmartHomeKit"

end`

然后在項目根目錄下執(zhí)行 pod update 命令進行集成。

2. 初始化 SDK

1) 打開項目設置,Target => General,修改 Bundle Identifier 為涂鴉開發(fā)者平臺對應的 iOS 包名

2) 導入安全圖片到工程根目錄,重命名為 t_s.bmp,并加入「項目設置 => Target => Build Phases => Copy Bundle Resources」中。

3) 在項目的PrefixHeader.pch文件添加以下內(nèi)容:

#import
4) 打開AppDelegate.m文件,在[AppDelegate application:didFinishLaunchingWithOptions:]方法中初始化SDK。

接口說明

初始化 SDK

- (void)startWithAppKey:(NSString *)appKey secretKey:(NSString *)secretKey;
參數(shù)說明

實例代碼

[[TuyaSmartSDK sharedInstance] startWithAppKey:<#your_app_key#> secretKey:<#your_secret_key#>];

3. 打開 Debug 模式

在開發(fā)的過程中可以開啟 Debug 模式,打印一些日志用于分析問題,開發(fā)結束上線后建議關閉。

`#ifdef DEBUG

    [[TuyaSmartSDK sharedInstance] setDebugMode:YES];

#else

#endif`

(三)注冊和登錄

涂鴉云支持多種用戶體系:手機、郵箱、UID。其中手機支持驗證碼登錄和密碼登錄兩種方式,UID 登錄主要用于已經(jīng)有自己賬號體系的場景。我們這里采用手機驗證碼注冊登錄。

在注冊登錄方法中,需要提供 countryCode 參數(shù)(國家區(qū)號),用于就近選擇涂鴉云的可用區(qū)。各個可用區(qū)的數(shù)據(jù)是相互獨立的,因此在 中國大陸(86) 注冊的賬號,在 美國(1) 無法使用(用戶不存在)。

1. 手機密碼注冊

手機號密碼注冊流程分為以下兩步: 獲取手機驗證碼 - 注冊賬號

// 發(fā)送驗證碼   

[[TuyaSmartUser sharedInstance] sendVerifyCode:@"86" phoneNumber:@"1300****" type:1 success:^{

 [TPDemoProgressUtils showSuccess:@"Verification code sent successfully" toView:nil];

} failure:^(NSError *error) {

  [TPDemoProgressUtils showError:error.localizedDescription];

}];

// 通過驗證碼注冊賬號

[[TuyaSmartUser sharedInstance] registerByPhone:@"86" phoneNumber:@"1300****" password:@"***" code:@"code" success:^{

    // 注冊成功,跳轉(zhuǎn)到首頁

 [[TYDemoApplicationImpl sharedInstance]    resetRootViewController:[TYDemoTabBarViewController class]];

} failure:^(NSError *error) {

  [TPDemoProgressUtils showError:error.localizedDescription];

}];

2. 判斷是否已經(jīng)登錄

在程序啟動后,如果登錄過了就不需要重復登錄,session的有效期是45天,直接到設備列表頁面。如果沒有登錄過,就先到登錄頁進行登錄,登錄成功后再跳轉(zhuǎn)到設備列表頁。

// 判斷是否已經(jīng)登錄

if ([TuyaSmartUser sharedInstance].isLogin) {

  // 首頁

 [self resetRootViewController:[TYDemoTabBarViewController class]];

} else {

 // 登錄頁

 [[TYDemoRouteManager sharedInstance] openRoute:kTYDemoPopLoginVC withParams:nil];

}

3. Session 失效處理

長期未登錄或者密碼修改后的賬號,在訪問服務端接口的時候會返回 Session 過期的錯誤,需要監(jiān)聽 TuyaSmartUserNotificationUserSessionInvalid 通知,跳轉(zhuǎn)至登錄頁面重新登錄。

 (void)loadNotification {

  [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sessionInvalid) name:TuyaSmartUserNotificationUserSessionInvalid object:nil];

}

(void)sessionInvalid {

    NSLog(@"sessionInvalid");

    //跳轉(zhuǎn)至登錄頁面

    MyLoginViewController *vc = [[MyLoginViewController alloc] init];

    self.window.rootViewController = vc;

  [self.window makeKeyAndVisible];

}

(四) 創(chuàng)建家庭

用戶登錄成功后需要通過 TuyaSmartHomeManager 去獲取整個家庭列表的信息,然后初始化其中的一個家庭TuyaSmartHome,獲取家庭詳情信息,就可以對家庭中的設備進行操作控制。

1. 家庭列表獲取

在設備列表頁面,我們先獲取用戶下的家庭列表,如果沒有家庭,我們創(chuàng)建一個默認家庭。因為設備激活的時候,需要把設備添加到家庭里面。

獲取到家庭列表之后,我們就可以初始化一個家庭,然后從云端獲取家庭的詳情,刷新首頁的設備列表。

 (void)initData {



    _homeManager = [[TuyaSmartHomeManager alloc] init];

  _homeManager.delegate = self;



  // 獲取本地的當前家庭
  
  NSString *homeId = [[NSUserDefaults standardUserDefaults] objectForKey:kDefaultCurrentHomeId];

 if ([homeId longLongValue] > 0) {

      self.home = [TuyaSmartHome homeWithHomeId:[homeId longLongValue]];

      if (self.home) {

            self.home.delegate = self;

           self.topBarView.leftItem.title = [NSString stringWithFormat:@"%@ ∨", self.home.homeModel.name];

            [TYDemoSmartHomeManager sharedInstance].currentHomeModel = self.home.homeModel;

          // 刷新設備列表數(shù)據(jù)

           [self reloadDataFromCloud];

       } else {

           // 如果沒有,獲取第一個家庭

           [self loadFirstHomeData];

       }

  } else {

      // 如果沒有,獲取第一個家庭

       [self loadFirstHomeData];

 }

}

 (void)reloadDataFromCloud {

    WEAKSELF_AT

   [self.refreshControl beginRefreshing];

    // 獲取當前家庭的詳情,并刷新列表

 [self.home getHomeDetailWithSuccess:^(TuyaSmartHomeModel *homeModel) {

   

     [weakSelf_AT reloadData];

 } failure:^(NSError *error) {

        if ([error.localizedFailureReason isEqualToString:@"PERMISSION_DENIED"]) {

         [weakSelf_AT loadFirstHomeData];

      }

      [weakSelf_AT.refreshControl endRefreshing];

  }];

}

2. 新增一個家庭

// add home

- (void)rightBtnAction {

   NSString *homeName = [NSString stringWithFormat:@"Home_%@", @(self.homeManager.homes.count)];

 WEAKSELF_AT

 [self.homeManager addHomeWithName:homeName geoName:@"hangzhou" rooms:@[@"room1"] latitude:0 longitude:0 success:^(long long homeId) {

      [TPDemoProgressUtils showSuccess:@"Add Success" toView:nil];

      // 切換到新增家庭

       TuyaSmartHome *home = [TuyaSmartHome homeWithHomeId:homeId];

     [weakSelf_AT swithCurrentHomeIdWithHomeModel:home.homeModel];

 } failure:^(NSError *error) {

      [TPDemoProgressUtils showError:error.localizedDescription];

  }];

}

3. 家庭列表信息變化回調(diào)

實現(xiàn) TuyaSmartHomeManagerDelegate 代理協(xié)議后,可以在家庭列表更變的回調(diào)中進行處理。

#pragma mark - TuyaSmartHomeManagerDelegate

// 添加一個家庭   

- (void)homeManager:(TuyaSmartHomeManager *)manager didAddHome:(TuyaSmartHomeModel *)home {

   NSLog(@"Add a home %@", home.name);

}

// 刪除一個家庭

 (void)homeManager:(TuyaSmartHomeManager *)manager didRemoveHome:(long long)homeId {

 // 如果刪除的家庭是當前家庭,當前家庭切換到另外一個

 if ([TYDemoSmartHomeManager sharedInstance].currentHomeModel.homeId == homeId) {

       [self loadFirstHomeData];

    }

}

// MQTT連接成功

- (void)serviceConnectedSuccess {

   // 去云端獲取當前家庭的詳情,然后去刷新 UI

  [self reloadDataFromCloud];

}

4. 單個家庭信息變化的回調(diào)

實現(xiàn) TuyaSmartHomeDelegate 代理協(xié)議后,可以在單個家庭信息更變的回調(diào)中進行處理。

#pragma mark - TuyaSmartHomeDelegate

// 家庭的信息更新,例如name

- (void)homeDidUpdateInfo:(TuyaSmartHome *)home {

    [self.tableView reloadData];

}

// 添加一個房間

- (void)home:(TuyaSmartHome *)home didAddRoom:(TuyaSmartRoomModel *)room {

 [self.tableView reloadData];

}

// 刪除一個房間

- (void)home:(TuyaSmartHome *)home didRemoveRoom:(long long)roomId {

  [self.tableView reloadData];

}

// 我收到的共享設備列表變化

- (void)homeDidUpdateSharedInfo:(TuyaSmartHome *)home {

  [self.tableView reloadData];

}

// 房間信息變更,例如name

- (void)home:(TuyaSmartHome *)home roomInfoUpdate:(TuyaSmartRoomModel *)room {

  [self.tableView reloadData];

}

// 房間與設備,群組的關系變化

- (void)home:(TuyaSmartHome *)home roomRelationUpdate:(TuyaSmartRoomModel *)room {

 [self.tableView reloadData];

}

// 添加設備

- (void)home:(TuyaSmartHome *)home didAddDeivice:(TuyaSmartDeviceModel *)device {

 [self.tableView reloadData];

}

// 刪除設備

- (void)home:(TuyaSmartHome *)home didRemoveDeivice:(NSString *)devId {

   [self.tableView reloadData];

}

// 設備信息更新,例如name

- (void)home:(TuyaSmartHome *)home deviceInfoUpdate:(TuyaSmartDeviceModel *)device {

  [self.tableView reloadData];

}

// 設備dp數(shù)據(jù)更新

- (void)home:(TuyaSmartHome *)home device:(TuyaSmartDeviceModel *)device dpsUpdate:(NSDictionary *)dps {

  [self.tableView reloadData];

}

// 添加群組

- (void)home:(TuyaSmartHome *)home didAddGroup:(TuyaSmartGroupModel *)group {

   [self.tableView reloadData];

}

// 群組dp數(shù)據(jù)更新

- (void)home:(TuyaSmartHome *)home group:(TuyaSmartGroupModel *)group dpsUpdate:(NSDictionary *)dps {

    [self.tableView reloadData];

}

// 刪除群組

- (void)home:(TuyaSmartHome *)home didRemoveGroup:(NSString *)groupId {

   [self.tableView reloadData];

}

// 群組信息更新,例如name

- (void)home:(TuyaSmartHome *)home groupInfoUpdate:(TuyaSmartGroupModel *)group {

 [self.tableView reloadData];

}

(五) 設備配網(wǎng)

設備配網(wǎng)是指設備在云端進行激活注冊。

1. 相關類

2. EZ 配網(wǎng)

這里主要介紹下 EZ 模式開發(fā),又稱快連模式(SmartConfig)。

- (void)addDeviceWithEZMode {



    // 獲取token

    WEAKSELF_AT

    id impl =       [[TYDemoConfiguration sharedInstance] serviceOfProtocol:@protocol(TYDemoDeviceListModuleProtocol)];

    long long homeId = [impl currentHomeId];

    [[TuyaSmartActivator sharedInstance]    getTokenWithHomeId:homeId success:^(NSString *token) {

        // 開始配網(wǎng)

        [weakSelf_AT commitEZModeActionWithToken:token];

    } failure:^(NSError *error) {

   

        info = [NSString stringWithFormat:@"%@: token fetch     failed, error message is    %@",NSStringFromSelector(_cmd),error.localizedDescription];

        [weakSelf_AT appendConsoleLog:info];

    }];

}

// 開始配網(wǎng)

- (void)commitEZModeActionWithToken:(NSString *)token {

    [TuyaSmartActivator sharedInstance].delegate = self;

    [[TuyaSmartActivator sharedInstance]    startConfigWiFi:TYActivatorModeEZ ssid:self.ssidField.text  password:self.passwordField.text token:token timeout:timeout];

}

#pragma mark - TuyaSmartActivatorDelegate

- (void)activator:(TuyaSmartActivator *)activator didReceiveDevice:(TuyaSmartDeviceModel *)deviceModel error:(NSError *)error {



    [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(countDown) object:nil];

    timeout = timeLeft;

    [self hideProgressView];



    NSString *info = [NSString stringWithFormat:@"%@:   Finished!", NSStringFromSelector(_cmd)];

    [self appendConsoleLog:info];

    if (error) {

         // 配網(wǎng)失敗

        info = [NSString stringWithFormat:@"%@: Error-%@!", NSStringFromSelector(_cmd), error.localizedDescription];

        [self appendConsoleLog:info];

    } else {

        // 配網(wǎng)成功

        info = [NSString stringWithFormat:@"%@: Success-You've added device %@ successfully!", NSStringFromSelector(_cmd), deviceModel.name];

        [self appendConsoleLog:info];

    }

}

智能設備配網(wǎng)成功后就有了聯(lián)網(wǎng)能力,就可以進行遠程控制了。

(六)設備控制

設備激活后,就可以進行智能設備的控制,然后監(jiān)聽設備控制變化的回調(diào)。

1. 相關類

在進行設備控制之前,我們先了解下設備功能點的概念。

2. 設備功能點

功能點是對產(chǎn)品功能的抽象表示,是具體智能設備功能的抽象,用于描述產(chǎn)品功能及其參數(shù)。

? 功能點 ID:功能點的編碼。設備與云端的功能數(shù)據(jù)通過功能點 ID 進行傳輸。

? 功能點名稱:自定義的功能名稱。

? 標識名:功能點 Code 值,用于 App 顯示功能名稱的多語言管理。支持字母、數(shù)字和下劃線,以字母開頭。

? 數(shù)據(jù)類型:

? 數(shù)據(jù)傳輸類型:

 |-可下發(fā)可上報:指令數(shù)據(jù)可以發(fā)送給設備,設備數(shù)據(jù)可以傳輸給云端。

 |- 只上報:數(shù)據(jù)只支持從設備傳輸給云端。

 |- 只下發(fā):數(shù)據(jù)只支持從云端發(fā)送給設備。

TuyaSmartDeviceModel 類的 dps 屬性(NSDictionary 類型)定義了當前設備的狀態(tài),稱作數(shù)據(jù)點(DP 點)或功能點

dps 字典里的每個 key 對應一個功能點的 dpId,value 對應一個功能點的 dpValue,dpValue 為該功能點的值

產(chǎn)品功能點定義參見涂鴉開發(fā)者平臺的產(chǎn)品功能,如下圖所示:

發(fā)送控制指令按照以下格式:

{"":""}

根據(jù)后臺該產(chǎn)品的功能點定義,如下:

示例代碼

- (void)publishDps {

    // self.device = [TuyaSmartDevice   deviceWithDeviceId:@"your_device_id"];

    // self.device.delegate = self;

    NSDictionary *dps;

    //設置dpId為1的布爾型功能點示例 作用:開關打開

    dps = @{@"1": @(YES)};

    //設置dpId為4的字符串型功能點示例 作用:設置RGB顏色為ff5500

    dps = @{@"4": @"ff5500"};

    //設置dpId為5的枚舉型功能點示例 作用:設置檔位為2檔

    dps = @{@"5": @"2"};

    //設置dpId為6的數(shù)值型功能點示例 作用:設置溫度為20°

    dps = @{@"6": @(20)};

    //設置dpId為15的透傳型(byte數(shù)組)功能點示例 作用:透傳紅外數(shù)據(jù)為1122

    dps = @{@"15": @"1122"};

    //多個功能合并發(fā)送

    dps = @{@"1": @(YES), @"4": @(ff5500)};

    [self.device publishDps:dps success:^{

        NSLog(@"publishDps success");

        //下發(fā)成功,狀態(tài)上報通過 deviceDpsUpdate方法 回調(diào)

    } failure:^(NSError *error) {

        NSLog(@"publishDps failure: %@", error);

    }];

}

注意事項

? 控制命令的發(fā)送需要特別注意數(shù)據(jù)類型

比如功能點的數(shù)據(jù)類型是數(shù)值型(value),那控制命令發(fā)送的應該是 @{@"2": @(25)} 而不是 @{@"2": @"25"}

? 透傳類型傳輸?shù)?byte 數(shù)組是字符串格式(16 進制字符串)、字母需小寫并且必須是偶數(shù)位

比如正確的格式是: @{@"1": @"011f"} 而不是 @{@"1": @"11f"}

功能點更多概念參見快速入門-功能點相關概念

3. 設備初始化和設備變化代理監(jiān)聽

需要通過 TuyaSmartHome 初始化一個 home 實例,然后調(diào)用接口 getHomeDetailWithSuccess:failure: 獲取家庭的詳情,同步過家庭的詳情后,初始化設備才能成功。錯誤的設備 id 可能會導致初始化失敗,此時設備的實例返回 nil。

- (void)publishDps {

    self.device = [TuyaSmartDevice  deviceWithDeviceId:@"your_device_id"];

    self.device.delegate = self;

    [self.device publishDps:@{@"1" : @{YES}} success:^{

        NSLog(@"publishDps success");

        //下發(fā)成功,狀態(tài)上報通過 deviceDpsUpdate方法 回調(diào)

    } failure:^(NSError *error) {

        NSLog(@"publishDps failure: %@", error);

    }];

}

#pragma mark - TuyaSmartDeviceDelegate

/// dp數(shù)據(jù)更新

- (void)device:(TuyaSmartDevice *)device dpsUpdate:(NSDictionary *)dps {

    [self.tableView reloadData];

}

/// 設備信息更新

- (void)deviceInfoUpdate:(TuyaSmartDevice *)device {


}   

/// 設備被移除

- (void)deviceRemoved:(TuyaSmartDevice *)device {


}

三、總結

我們已經(jīng)完成了一個 IoT App 對智能硬件設備的激活入網(wǎng),設備控制等主要環(huán)節(jié),通過上述的流程說明,相信你已經(jīng)可以基于App SDK完成一個智能家居App的開發(fā),感興趣就去試試吧,有問題可以評論或者私聊!

???????四、參考

IoT App SDK 簡介

Tuya Home SDK

Demo 鏈接

審核編輯:符乾江

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

    關注

    39

    文章

    1782

    瀏覽量

    114228
  • 人工智能
    +關注

    關注

    1806

    文章

    49018

    瀏覽量

    249469
  • IOT
    IOT
    +關注

    關注

    187

    文章

    4305

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    HarmonyOS 代碼工坊的指尖開發(fā),讓 APP 開發(fā)所見即所得

    過去,移動端 APP開發(fā),往往是開發(fā)者在桌面仿真界面上的場“隔空演練”。 雖然市面上已經(jīng)有些簡化
    的頭像 發(fā)表于 06-24 12:08 ?175次閱讀
    HarmonyOS 代碼工坊的指尖<b class='flag-5'>開發(fā)</b>,讓 <b class='flag-5'>APP</b> <b class='flag-5'>開發(fā)</b>所見即所得

    使用DevEcoStudio 開發(fā)、編譯鴻蒙 NEXT_APP 以及使用中文插件

    # 使用DevEcoStudio 開發(fā)、編譯鴻蒙 NEXT_APP 以及使用中文插件 #鴻蒙開發(fā)工具 #DevEco Studio ## 1. 概述 DevEco Studio 是華為提供
    發(fā)表于 06-11 17:18

    app和deviceConfig的切換介紹

    app和deviceConfig的切換 為了便于開發(fā)者維護應用級別的屬性配置,Stage模型將config.json中的app和deviceConfig標簽提取到了app.json5
    發(fā)表于 06-05 06:42

    定時模塊app_timer用法及常見問題—nRF5 SDK模塊系列二

    app_timer是大家經(jīng)常用到的庫,app_timer的功能就是定時,也就是說,你在某時刻啟動
    的頭像 發(fā)表于 05-12 16:13 ?252次閱讀
    定時模塊<b class='flag-5'>app</b>_timer用法及常見問題—nRF5 <b class='flag-5'>SDK</b>模塊系列二

    Meshtastic APP使用介紹

    meshtastic APP使用介紹
    的頭像 發(fā)表于 03-05 09:59 ?747次閱讀
    Meshtastic <b class='flag-5'>APP</b>使用介紹

    秒驗:重構APP用戶體驗與運營效率

    漏斗。而基于運營商網(wǎng)關的“秒驗證”技術(如秒驗鍵登錄),通過免輸入、無感知的驗證方式,正在成為APP企業(yè)提升用戶體驗、優(yōu)化運營效率的核心工具。數(shù)據(jù)顯示,采用該技術的APP注冊轉(zhuǎn)化率
    的頭像 發(fā)表于 02-28 10:40 ?390次閱讀

    如何快速創(chuàng)建用戶自定義Board和App工程

    概述自HPM_SDKv1.7.0發(fā)布開始,在HPM_ENV中新增了user_template文件夾,以方便用戶快速創(chuàng)建自定義的Board和App工程。user_template是用戶模板工程,用戶
    的頭像 發(fā)表于 02-08 13:38 ?523次閱讀
    如何<b class='flag-5'>快速</b>創(chuàng)建用戶自定義Board和<b class='flag-5'>App</b>工程

    基于迅為RK3568開發(fā)板全國產(chǎn)平臺,快速實現(xiàn)APP開機自啟動技術分享

    基于迅為RK3568開發(fā)板全國產(chǎn)平臺,快速實現(xiàn)APP開機自啟動技術分享
    的頭像 發(fā)表于 11-21 13:58 ?958次閱讀
    基于迅為RK3568<b class='flag-5'>開發(fā)</b>板全國產(chǎn)平臺,<b class='flag-5'>快速</b>實現(xiàn)<b class='flag-5'>APP</b>開機自啟動技術分享

    工業(yè)APP與智能制造

    1 工業(yè) APP 與智能制造 工業(yè)軟件是我國智能制造的重要基礎和核心支撐, 工業(yè)APP 是智能制造和工業(yè)互聯(lián)網(wǎng)時代的新型工業(yè)軟件。根據(jù)《工業(yè)APP白皮書(2020)》定義: 工業(yè) APP
    的頭像 發(fā)表于 11-08 10:19 ?667次閱讀

    安卓APP開發(fā)中,如何使用加密芯片?

    加密芯片是種專門設計用于保護信息安全的硬件設備,它通過內(nèi)置的加密算法對數(shù)據(jù)進行加密和解密,以防止敏感數(shù)據(jù)被竊取或篡改。如下圖HD-RK3568-IOT工控板,搭載ATSHA204A加密芯片,常用于有安全防護要求的工商業(yè)場景,下文將為大家介紹安卓
    的頭像 發(fā)表于 10-31 17:43 ?998次閱讀
    安卓<b class='flag-5'>APP</b><b class='flag-5'>開發(fā)</b>中,如何使用加密芯片?

    蘋果正開發(fā)App Store相似的新游戲應用程序

    10月23日訊,據(jù)最新媒體報道,蘋果正加大對游戲領域的投入,并著手開發(fā)款與App Store相似的新游戲應用程序。   這款新應用將整合App Store與Game Cente
    的頭像 發(fā)表于 10-23 13:40 ?779次閱讀

    機智云智家APP的設備掃描與綁定限制

    在使用機智云的智家APP時,用戶可能會遇到無法掃描和綁定設備的問題。這現(xiàn)象的根本原因在于智家APP的使用限制和付費策略。Q智家APP的功能概述是什么?智家
    的頭像 發(fā)表于 09-22 08:02 ?589次閱讀
    機智云智家<b class='flag-5'>APP</b>的設備掃描與綁定限制

    單片機WiFi模塊怎樣連接手機APP

    連接 :將WiFi模塊與單片機物理連接。 編程單片機 :編寫代碼使單片機能通過WiFi模塊與互聯(lián)網(wǎng)通信。 創(chuàng)建服務器 :在單片機上創(chuàng)建小型服務器,以便手機APP可以與之通信。 開發(fā)
    的頭像 發(fā)表于 09-10 15:31 ?3614次閱讀

    Gokit二次開發(fā):云端快速APP生成

    Gokit是機智云(GizWits)推出的物聯(lián)網(wǎng)智能硬件開發(fā)套件,目的是幫助傳統(tǒng)硬件快速接入互聯(lián)網(wǎng)。完成入網(wǎng)之后,數(shù)據(jù)可以在產(chǎn)品與云端、制造商與用戶之間互聯(lián)互通,實現(xiàn)智能互聯(lián)。本文內(nèi)容為Gokit
    的頭像 發(fā)表于 08-30 12:15 ?665次閱讀
    Gokit二次<b class='flag-5'>開發(fā)</b>:云端<b class='flag-5'>快速</b><b class='flag-5'>APP</b>生成

    如何向Buildroot內(nèi)添加外部APP

    Linux項目開發(fā),如何在BuildRoot框架內(nèi)添加外部APP呢?本文以quect-CM撥號軟件為例,做開發(fā)演示。
    的頭像 發(fā)表于 07-22 17:48 ?670次閱讀
    如何向Buildroot內(nèi)添加外部<b class='flag-5'>APP</b>