裝置重設

更新時間:
Copy as MD

有的產品設計了重設(Reset)按鈕,用於清除裝置上的配置,讓裝置恢複到出廠狀態,這些功能由裝置廠商去實現。但是有的情境下,裝置商需要雲端感知裝置上執行了reset操作,那麼需要調用Link SDK提供的API告知雲端。

Android裝置只有使用者主動觸發reset調用的情境,例如單擊按鈕或者按鍵的時候開發人員調用SDK的reset介面reset調用之後,SDK分兩個流程處理:
  • 如果裝置線上,調用reset介面到雲端,成功之後銷毀整個linkkit(調用deinit),失敗按照流程2處理。
  • 如果裝置不線上,設定一個reset的標誌位,然後銷毀整個linkkit,後續linkkit被重新初始化的時候,根據是否有這個reset標誌位在建聯成功之後再調用reset介面,reset完成之後才會響應裝置的發現。如果APP卸載或刪除APP資料之後,則下次啟動則不再執行reset操作了,標誌位被清除了
LinkKit.getInstance().reset(new IConnectSendListener() {
    @Override
    public void onResponse(ARequest aRequest, AResponse aResponse) {
        ALog.d(TAG, "reset onResponse ");
    }

    @Override
    public void onFailure(ARequest aRequest, AError aError) {
        ALog.d(TAG, "reset onFailure");
    }
});
        

智能生活開放平台的使用者解除綁定操作

背景說明:

如果產品是在阿里雲IoT的智能生活開放平台註冊,那麼使用者只有通過手機APP與裝置之間建立綁定關係之後,才能對裝置進行控制。如果裝置被出售或者轉讓給了另外一個使用者,那麼新使用者可以通過觸按reset按鍵告知雲端解除裝置與原使用者的綁定關係,避免原使用者對裝置可以繼續進行控制。

此時就需要調用LinkKit.getInstance().reset介面來告知雲端解除裝置與原有使用者的綁定關係。

允許重新進行動態註冊的操作

背景說明:

如果產品的認證選用了動態註冊功能,裝置出廠時只需要燒寫ProductKey、ProductSecret,裝置串連到阿里雲物聯網時可以通過動態註冊過程去擷取裝置的DeviceSecret;但是當裝置擷取到了DeviceSecret之後,如果通過動態註冊過程去擷取裝置的DeviceSecret,雲端將會拒絕。

因此裝置擷取到DeviceSecret之後,需要將DeviceSecret固化到非應用儲存中,並且即使使用者觸按reset按鍵或者卸載APP或者刪除APP資料也不要將DeviceSecret刪除掉。 如果裝置因為某些原因導致DeviceSecret被刪掉,為了讓該裝置能夠繼續被使用,開發人員需要將該裝置的ProductKey、DeviceName記錄下來,到阿里雲控制台刪除對應deviceName 的裝置,然後重新建立一個相同deviceName的裝置即可。廠家需要注意正式發布的產品不允許出現deviceSecret可以被使用者刪除的情況。