このトピックでは、Android 用 Link SDK を使用して、MQTT 経由でデバイスを IoT Platform に接続する方法について説明します。
前提条件
IoT Platform がアクティブ化されていること。
IoT Platform のアクティブ化は無料です。アクティブ化すると、無料枠を使用できます。詳細については、IoT Platform 無料トライアルセンターにアクセスしてください。
背景情報
このトピックでは、LightSwitch という名前のデバイスを作成し、Windows 上で実行されるサンプルコードを Android 用 Link SDK に基づいて記述して、MQTT 経由でデバイスを IoT Platform に接続するシミュレーションを行います。デバイスは、カスタムトピックを使用して IoT Platform にデータを送信できます。
詳細については、「IoT Platform とは」をご参照ください。
プロダクトとデバイスの作成
IoT Platform コンソールにログオンし、[パブリックインスタンス] カードをクリックします。
左側のナビゲーションウィンドウで、[デバイス] > [製品] を選択します。表示されるページで、[製品の作成] をクリックします。
[プロダクトの作成] ページで、製品を作成製品名カスタム カテゴリOK パラメーターを NightLightSwitch に設定し、 パラメーターを に設定し、その他のパラメーターにはデフォルト値を使用し、 をクリックします。

[プロダクトの作成] ページの 追加デバイスの追加 セクションで、 をクリックします。
デバイスを追加OK ダイアログボックスで、デバイス名を入力します。例:LightSwitch。次に、 をクリックします。
[デバイスが追加されました。] ダイアログボックスで、デバイス証明書のコピー[デバイス証明書のコピー] をクリックします。 次に、デバイス証明書情報をオンプレミスサーバーに保存します。
デバイス証明書には、ProductKey、DeviceName、および DeviceSecret が含まれています。デバイス証明書は、デバイスを IoT Platform に接続するときに必要です。詳細については、「デバイス証明書。」をご参照ください。
[製品の作成] ページで、[製品の詳細を表示] をクリックします。
プロダクト詳細ページで、[トピックカテゴリ] > [トピックカテゴリ] > [トピックカテゴリの編集] を選択します。 [トピックカテゴリの編集] ダイアログボックスで、パラメーターを設定し、[OK] をクリックしてカスタムトピックカテゴリを作成します。

get という名前の Topic カテゴリを作成し、前の図に示すように、その Topic カテゴリの Device Operation Authorizations パラメーターを [サブスクライブ] に設定します。上記の手順を繰り返して、update という名前の別の Topic カテゴリを作成し、Device Operation Authorizations パラメーターを [パブリッシュ] に設定します。[ Topic カテゴリの編集] ダイアログボックスに表示される情報をオンプレミス サーバーに保存します。この情報は、モバイルフォンで Topic をサブスクライブするときに必要になります。
取得:/a18wP******/${deviceName}/user/get
更新:/a18wP******/${deviceName}/user/updata
[OK] をクリックします。
開発環境の準備
この例では、開発ツールとして Android Studio 4.1.1 を使用し、シミュレートされたデバイスシステムは Android 10.0 です。詳細については、「プロジェクト構成」をご参照ください。
Android Studio をインストールします。
詳細については、「Android Studio」をご参照ください。
シミュレートされたデバイスを作成します。
詳細については、「シミュレートされたデバイスの作成と管理」をご参照ください。
デバイス SDK の構成
デモパッケージを開発環境にダウンロードし、解凍します。
説明パッケージをダウンロードすることにより、ソフトウェアライセンス契約に同意したことになります。
Android 用 Link SDK の詳細については、「プロジェクト構成」をご参照ください。
Android Studio を開き、[ファイル] > [開く...] を選択し、解凍したコードファイルを見つけ、パラメーターを構成します。次の表にパラメーターを示します。
ファイル
パラメーター
例
説明
app/src/main/res/raw/deviceinfo
productKey
a18wP******
検証用のデバイス情報。パラメーターの値を、オンプレミスサーバーに保存したデバイス証明書情報に置き換えます。
deviceName
LightSwitch
deviceSecret
uwMTmVAMnGGHaAkqmeDY6cHxxB******
app/src/main/java/com/aliyun/alink/devicesdk/manager/InitManager.java
LinkKit.getInstance().init
MqttConfigure.mqttHost = "iot-060a****.mqtt.iothub.aliyuncs.com:8883"
デバイスを接続するエンドポイント。
LinkKit.getInstance().initの前に次のコードを追加します。MqttConfigure.mqttHost = "YourHostName:8883";YourHostNameをインスタンスのエンドポイントに置き換えます。エンドポイントを取得するには、次の手順を実行します。Enterprise Edition インスタンスまたは新しいバージョンのパブリックインスタンスを使用している場合は、次の手順を実行します。インスタンスの詳細ページで、[開発設定の表示] をクリックします。開発設定パネルの [エンドポイント] セクションで MQTT を選択して、エンドポイントを表示します。次に、エンドポイントの横にある [コピー] をクリックします。
古いバージョンのパブリックインスタンスを使用している場合は、次の形式でエンドポイントを構築する必要があります。形式:
${YourProductKey}.iot-as-mqtt.${YourRegionId}.aliyuncs.com:8883例:
a18wP******.iot-as-mqtt.cn-shanghai.aliyuncs.com:8883
アイコンをクリックして、プロジェクトをコンパイルします。
結果
プロジェクトのコンパイル後、
アイコンをクリックしてプロジェクトを実行します。サンプルプログラムはシミュレートされたデバイスで実行され、次の図に示すように、デバイスが IoT Platform に接続されていることを示します。

[MQTT の例] をクリックします。
MQTT の例[トピックをサブスクライブする]サブスクライブ ページで、 パラメーターの値を前の手順で保存したトピックカテゴリに変更し、 をクリックします。
説明例:/a18wP******/${deviceName}/user/get。 a18wP****** と deviceName は、実際のプロダクト名と DeviceName に置き換える必要があります。
デバイスのトピックをサブスクライブすると、デバイスは IoT Platform からメッセージを受信できます。IoT Platform がデバイスにメッセージを送信する前に、テストのためにデバイスにメッセージを送信できます。
トピック一覧デバイスの詳細メッセージを公開[メッセージの公開] ページの タブで、サブスクライブしたトピックの横にある をクリックします。 ダイアログボックスで、メッセージを入力します。例:これは Alibaba IoT Platform からのテストメッセージです。これは、IoT Platform がデバイスにメッセージを送信するシナリオをシミュレートします。デバイスはこのメッセージを受信できます。
Mqtt の例トピックを公開公開 ページで、 パラメーターの値を前の手順で保存したトピックカテゴリに変更し、その他のパラメーターを設定し、 をクリックします。
[デバイスログ] ページで、デバイスから IoT Platform に送信されたメッセージのメッセージコンテンツ列にある [表示] をクリックして、メッセージ本文を表示します。
次のステップ
デバイスが IoT Platform に接続された後、デバイスを管理および監視できます。 IoT Platform の機能の詳細については、「機能」をご参照ください。
Android 用 Link SDK を使用した高度な機能の構成方法の詳細については、「プロジェクト構成」をご参照ください。