Google Cloud IoT Core ne sera plus disponible à compter du 16 août 2023. Pour en savoir plus, contactez l'équipe chargée de votre compte Google Cloud.

Effacer le registre

Retirer tous les appareils d'un registre et le supprimer.

Exemple de code

Java

Pour en savoir plus, consultez la documentation de référence de l'API Cloud IoT Core Java.

Pour vous authentifier auprès de Cloud IoT Core, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.

protected static void clearRegistry(String cloudRegion, String projectId, String registryName)
    throws GeneralSecurityException, IOException {
  GoogleCredentials credential =
      GoogleCredentials.getApplicationDefault().createScoped(CloudIotScopes.all());
  JsonFactory jsonFactory = GsonFactory.getDefaultInstance();
  HttpRequestInitializer init = new HttpCredentialsAdapter(credential);
  final CloudIot service =
      new CloudIot.Builder(GoogleNetHttpTransport.newTrustedTransport(), jsonFactory, init)
          .setApplicationName(APP_NAME)
          .build();
  final String registryPath =
      String.format(
          "projects/%s/locations/%s/registries/%s", projectId, cloudRegion, registryName);

  CloudIot.Projects.Locations.Registries regAlias = service.projects().locations().registries();
  CloudIot.Projects.Locations.Registries.Devices devAlias = regAlias.devices();

  ListDevicesResponse listGatewaysRes =
      devAlias.list(registryPath).setGatewayListOptionsGatewayType("GATEWAY").execute();
  List<Device> gateways = listGatewaysRes.getDevices();

  // Unbind all devices from all gateways
  if (gateways != null) {
    System.out.println("Found " + gateways.size() + " devices");
    for (Device g : gateways) {
      String gatewayId = g.getId();
      System.out.println("Id: " + gatewayId);

      ListDevicesResponse res =
          devAlias
              .list(registryPath)
              .setGatewayListOptionsAssociationsGatewayId(gatewayId)
              .execute();
      List<Device> deviceNumIds = res.getDevices();

      if (deviceNumIds != null) {
        System.out.println("Found " + deviceNumIds.size() + " devices");
        for (Device device : deviceNumIds) {
          String deviceId = device.getId();
          System.out.println(String.format("ID: %s", deviceId));

          // Remove any bindings from the device
          UnbindDeviceFromGatewayRequest request = new UnbindDeviceFromGatewayRequest();
          request.setDeviceId(deviceId);
          request.setGatewayId(gatewayId);
          regAlias.unbindDeviceFromGateway(registryPath, request).execute();
        }
      } else {
        System.out.println("Gateway has no bound devices.");
      }
    }
  }

  // Remove all devices from the regsitry
  List<Device> devices = devAlias.list(registryPath).execute().getDevices();

  if (devices != null) {
    System.out.println("Found " + devices.size() + " devices");
    for (Device d : devices) {
      String deviceId = d.getId();
      String devicePath = String.format("%s/devices/%s", registryPath, deviceId);
      service.projects().locations().registries().devices().delete(devicePath).execute();
    }
  }

  // Delete the registry
  service.projects().locations().registries().delete(registryPath).execute();
}

Étapes suivantes

Pour rechercher et filtrer des exemples de code pour d'autres produits Google Cloud, consultez l'exemple de navigateur Google Cloud.