Freigeben über


DeviceManagementClient.GetDevicesAsync(String, RequestContext) Methode

Definition

Ruft eine Liste der Geräte ab, die mit Device Update für IoT Hub verbunden sind.

public virtual Azure.AsyncPageable<BinaryData> GetDevicesAsync (string filter = default, Azure.RequestContext context = default);
abstract member GetDevicesAsync : string * Azure.RequestContext -> Azure.AsyncPageable<BinaryData>
override this.GetDevicesAsync : string * Azure.RequestContext -> Azure.AsyncPageable<BinaryData>
Public Overridable Function GetDevicesAsync (Optional filter As String = Nothing, Optional context As RequestContext = Nothing) As AsyncPageable(Of BinaryData)

Parameter

filter
String

Schränkt den Satz der zurückgegebenen Geräte ein. Sie können nach GroupId, DeviceClassId oder GroupId und DeploymentStatus filtern. Verwenden Sie DeploymentStatus eq null, um Geräte abzufragen, für die keine Bereitstellung status (die noch nie in bereitgestellt wurden).

context
RequestContext

Der Anforderungskontext, der das Standardverhalten der Clientpipeline pro Aufruf außer Kraft setzen kann.

Gibt zurück

Der AsyncPageable<T> aus dem Dienst, der eine Liste von BinaryData -Objekten enthält. Details zum Textkörperschema für jedes Element in der Auflistung finden Sie im Abschnitt Hinweise unten.

Ausnahmen

Der Dienst hat einen nicht erfolgreichen status Code zurückgegeben.

Beispiele

In diesem Beispiel wird gezeigt, wie Sie GetDevicesAsync aufrufen und das Ergebnis analysieren.

var credential = new DefaultAzureCredential();
var endpoint = new Uri("<https://my-service.azure.com>");
var client = new DeviceManagementClient(endpoint, "<instanceId>", credential);

await foreach (var data in client.GetDevicesAsync())
{
    JsonElement result = JsonDocument.Parse(data.ToStream()).RootElement;
    Console.WriteLine(result.GetProperty("deviceId").ToString());
    Console.WriteLine(result.GetProperty("deviceClassId").ToString());
    Console.WriteLine(result.GetProperty("onLatestUpdate").ToString());
}

In diesem Beispiel wird gezeigt, wie Sie GetDevicesAsync mit allen Parametern aufrufen und das Ergebnis analysieren.

var credential = new DefaultAzureCredential();
var endpoint = new Uri("<https://my-service.azure.com>");
var client = new DeviceManagementClient(endpoint, "<instanceId>", credential);

await foreach (var data in client.GetDevicesAsync("<filter>"))
{
    JsonElement result = JsonDocument.Parse(data.ToStream()).RootElement;
    Console.WriteLine(result.GetProperty("deviceId").ToString());
    Console.WriteLine(result.GetProperty("moduleId").ToString());
    Console.WriteLine(result.GetProperty("deviceClassId").ToString());
    Console.WriteLine(result.GetProperty("groupId").ToString());
    Console.WriteLine(result.GetProperty("lastAttemptedUpdate").GetProperty("updateId").GetProperty("provider").ToString());
    Console.WriteLine(result.GetProperty("lastAttemptedUpdate").GetProperty("updateId").GetProperty("name").ToString());
    Console.WriteLine(result.GetProperty("lastAttemptedUpdate").GetProperty("updateId").GetProperty("version").ToString());
    Console.WriteLine(result.GetProperty("lastAttemptedUpdate").GetProperty("description").ToString());
    Console.WriteLine(result.GetProperty("lastAttemptedUpdate").GetProperty("friendlyName").ToString());
    Console.WriteLine(result.GetProperty("deploymentStatus").ToString());
    Console.WriteLine(result.GetProperty("installedUpdate").GetProperty("updateId").GetProperty("provider").ToString());
    Console.WriteLine(result.GetProperty("installedUpdate").GetProperty("updateId").GetProperty("name").ToString());
    Console.WriteLine(result.GetProperty("installedUpdate").GetProperty("updateId").GetProperty("version").ToString());
    Console.WriteLine(result.GetProperty("installedUpdate").GetProperty("description").ToString());
    Console.WriteLine(result.GetProperty("installedUpdate").GetProperty("friendlyName").ToString());
    Console.WriteLine(result.GetProperty("onLatestUpdate").ToString());
    Console.WriteLine(result.GetProperty("lastDeploymentId").ToString());
    Console.WriteLine(result.GetProperty("lastInstallResult").GetProperty("resultCode").ToString());
    Console.WriteLine(result.GetProperty("lastInstallResult").GetProperty("extendedResultCode").ToString());
    Console.WriteLine(result.GetProperty("lastInstallResult").GetProperty("resultDetails").ToString());
    Console.WriteLine(result.GetProperty("lastInstallResult").GetProperty("stepResults")[0].GetProperty("update").GetProperty("updateId").GetProperty("provider").ToString());
    Console.WriteLine(result.GetProperty("lastInstallResult").GetProperty("stepResults")[0].GetProperty("update").GetProperty("updateId").GetProperty("name").ToString());
    Console.WriteLine(result.GetProperty("lastInstallResult").GetProperty("stepResults")[0].GetProperty("update").GetProperty("updateId").GetProperty("version").ToString());
    Console.WriteLine(result.GetProperty("lastInstallResult").GetProperty("stepResults")[0].GetProperty("update").GetProperty("description").ToString());
    Console.WriteLine(result.GetProperty("lastInstallResult").GetProperty("stepResults")[0].GetProperty("update").GetProperty("friendlyName").ToString());
    Console.WriteLine(result.GetProperty("lastInstallResult").GetProperty("stepResults")[0].GetProperty("description").ToString());
    Console.WriteLine(result.GetProperty("lastInstallResult").GetProperty("stepResults")[0].GetProperty("resultCode").ToString());
    Console.WriteLine(result.GetProperty("lastInstallResult").GetProperty("stepResults")[0].GetProperty("extendedResultCode").ToString());
    Console.WriteLine(result.GetProperty("lastInstallResult").GetProperty("stepResults")[0].GetProperty("resultDetails").ToString());
}

Hinweise

Im Folgenden finden Sie das JSON-Schema für ein Element in der auslagerungsfähigen Antwort.

Antworttext:

Schema für DevicesListValue:

{
              deviceId: string, # Required. Device identity.
              moduleId: string, # Optional. Device module identity.
              deviceClassId: string, # Required. Device class identity.
              groupId: string, # Optional. Device group identity.
              lastAttemptedUpdate: {
                updateId: {
                  provider: string, # Required. Update provider.
                  name: string, # Required. Update name.
                  version: string, # Required. Update version.
                }, # Required. Update identifier.
                description: string, # Optional. Update description.
                friendlyName: string, # Optional. Friendly update name.
              }, # Optional. The update that device last attempted to install.
              deploymentStatus: "Succeeded" | "InProgress" | "Canceled" | "Failed", # Optional. State of the device in its last deployment.
              installedUpdate: UpdateInfo, # Optional. Currently installed update on device.
              onLatestUpdate: boolean, # Required. Boolean flag indicating whether the latest update (the best compatible update for the device's device class and group) is installed on the device
              lastDeploymentId: string, # Optional. The deployment identifier for the last deployment to the device
              lastInstallResult: {
                resultCode: number, # Required. Install result code.
                extendedResultCode: number, # Required. Install extended result code
                resultDetails: string, # Optional. A string containing further details about the install result
                stepResults: [
                  {
                    update: UpdateInfo, # Optional. The update that this step installs if it is of reference type.
                    description: string, # Optional. Step description.
                    resultCode: number, # Required. Install result code.
                    extendedResultCode: number, # Required. Install extended result code
                    resultDetails: string, # Optional. A string containing further details about the install result
                  }
                ], # Optional. Array of step results
              }, # Optional. Last install result.
            }

Gilt für: