Häufige Vorgänge

Auf dieser Seite finden Sie Beispiele für häufige Vorgänge, die Sie mit der Common Reseller-Bibliothek ausführen können, darunter:


ResellerService-Objekte erstellen

Verwenden Sie die Samsung- und Google-Factory-Klassen, um ResellerService-Objekte zu erstellen. Für ResellerService-Objekte stehen verschiedene gängige Methoden zur Registrierung von Samsung- und anderen Android-Geräten zur Verfügung.

Samsung-Geräte

Das folgende Beispiel zeigt, wie Sie ein ResellerService-Objekt mit der Klasse SamsungResellerServiceFactory erstellen, um Samsung-Geräte zu verwalten.

Vorher müssen Sie jedoch das Knox-Bereitstellungsprogramm (KDP) einrichten.

ResellerService samsungResellerService = SamsungResellerServiceFactory.createResellerService(resellerId, serviceAccountKeyFilePath, clientIdentifier);

Andere Android-Geräte

Das folgende Beispiel zeigt, wie ein ResellerService-Objekt mit der Klasse GoogleResellerServiceFactory erstellt wird, um andere Android-Geräte (nicht Samsung) zu verwalten. Bevor Sie dies tun können, müssen Sie die Schritte unter Erste Schritte für die Zero-Touch-Registrierung ausführen, um resellerId und den Dienstkontoschlüssel abzurufen.

ResellerService googleResellerService = GoogleResellerServiceFactory.createResellerService(resellerId, serviceAccountKeyFilePath);

Customer-Objekte erstellen

Ein Kunde, der Samsung- und Nicht-Samsung-Geräte kauft, benötigt zwei Kundennummern.

Samsung-Geräte

Für die Verwaltung von Samsung-Geräten verwenden Sie die Knox-Kundennummer des Kunden. Zum Abrufen der Knox-Kundennummer müssen Sie zuerst ein Customer-Objekt erstellen. Rufen Sie dazu createCustomer mit einem aus SamsungResellerServiceFactory erstellten SamsungResellerService auf. Beispiel:

CreateCustomerRequest request = CreateCustomerRequest.newBuilder()
    .setCustomerName("TestCustomer") .addPrimaryEmails("superAdmin@gmail.com")
    .putVendorParams("country", "US") .putVendorParams("firstName", "Avery")
    .putVendorParams("lastName", "Yamada") .putVendorParams("service", "KME")
    .build();
CreateCustomerResponse response = samsungResellerService.createCustomer(request);
String companyId = response.getCustomer().getCompanyReference().getCompanyId();

Bei Erfolg gibt die Anfrage ein CreateCustomerResponse-Objekt zurück, aus dem Sie die Knox-Kundennummer extrahieren können.

Andere Android-Geräte

Bei anderen Android-Geräten benötigt der Kunde eine Zero-Touch-Registrierungs-Kundennummer. Wenn ein Kunde bereits die Zero-Touch-Registrierung bei einem anderen Reseller verwendet, verwenden Sie seine vorhandene Kundennummer. Andernfalls müssen Sie ein Customer-Objekt erstellen. Rufen Sie dazu createCustomer mit einem aus GoogleResellerServiceFactory erstellten ResellerService auf. Hier ein Beispiel:

CreateCustomerRequest request = CreateCustomerRequest.newBuilder()
    .setCustomerName("TestCustomer")
    .addPrimaryEmails("owner@gmail.com")
    .addSecondaryEmails("admin@gmail.com")
    .build();
CreateCustomerResponse response = googleResellerService.createCustomer(request);
String companyId = response.getCustomer().getCompanyReference().getCompanyId();

Bei Erfolg gibt die Anfrage ein CreateCustomerResponse-Objekt zurück. Sie können die Kundennummer aus der Antwort abrufen.


Mehrere Geräte anfordern

Durch das Beanspruchen eines Geräts wird eine Verknüpfung zwischen dem Gerät und einem Kunden erstellt. Wenn Sie beispielsweise einen Batch von Geräten an einen Kunden verkaufen, würden Sie die Geräte für diesen Kunden beanspruchen.

Dieses Beispiel zeigt eine Möglichkeit, eine Gruppe von Geräten zu verarbeiten, die Bestellungen von mehreren Herstellern (Samsung und andere Android-Geräte) von mehreren Kunden enthält.

Schritt 1: Geräte und Kunden organisieren

Bei einer Tabelle mit IMEI-Nummern, Herstellern und IDs der Kunden, an die die Geräte verkauft wurden, können Sie Bestellungen beispielsweise verwalten, indem Sie sie in zwei Listen sortieren: Bestellungen von Samsung-Geräten und andere Android-Gerätebestellungen (keine Samsung-Bestellungen). Gruppiere dann in jeder Liste Geräte nach Kunden. Beispiel:

Samsung-Geräte

Kundenname Samsung Knox-Kundennummer Hersteller IMEI
Logo: ABC 11 Samsung

1234567801

1234567802

Andere Android-Geräte

Kundenname Kundennummer Hersteller IMEI
Logo: ABC 21 Google 1234567803
Unternehmen XYZ 22 Sony

1234567804

1234567805

Schritt 2: ClaimDevicesRequest-Objekt erstellen

Samsung-Geräte

// Note: You can only claim devices for a single customer in each request.
ClaimDevicesRequest claimSamsungDevicesRequest = ClaimDevicesRequest.newBuilder()
   .addClaims(
       DeviceClaim.newBuilder()
           .setCustomer(
               CompanyReference.newBuilder()
                   .setVendor(Vendor.SAMSUNG)
                   .setCompanyId("11")
                   .build())
           .setDeviceIdentifier(
               DeviceIdentifier.newBuilder()
                   .setImei("1234567801")
                   .setManufacturer("Samsung")
                   .build())
       .build())
   .addClaims(
       DeviceClaim.newBuilder()
           .setCustomer(
               CompanyReference.newBuilder()
                   .setVendor(Vendor.SAMSUNG)
                   .setCompanyId("11")
                   .build())
           .setDeviceIdentifier(
               DeviceIdentifier.newBuilder()
                   .setImei("1234567802")
                   .setManufacturer("Samsung")
                   .build())
           .build())
   .build();

Andere Android-Geräte

ClaimDevicesRequest claimGoogleDevicesRequest = ClaimDevicesRequest.newBuilder()
    .addClaims(
        DeviceClaim.newBuilder()
            .setCustomer(
                CompanyReference.newBuilder()
                    .setVendor(Vendor.GOOGLE)
                    .setCompanyId("21")
                    .build())
            .setDeviceIdentifier(
                DeviceIdentifier.newBuilder()
                    .setImei("1234567803")
                    .setManufacturer("Google")
                    .build())
            .build())
    .addClaims(
        DeviceClaim.newBuilder()
            .setCustomer(
                CompanyReference.newBuilder()
                    .setVendor(Vendor.GOOGLE)
                    .setCompanyId("22")
                    .build())
            .setDeviceIdentifier(
                DeviceIdentifier.newBuilder()
                    .setImei("1234567804")
                    .setManufacturer("Sony")
                    .build())
            .build())
    .addClaims(
         DeviceClaim.newBuilder()
             .setCustomer(
                 CompanyReference.newBuilder()
                     .setVendor(Vendor.GOOGLE)
                     .setCompanyId("22")
                     .build())
             .setDeviceIdentifier(
                 DeviceIdentifier.newBuilder()
                     .setImei("1234567805")
                     .setManufacturer("Sony")
                     .build())
             .build())
    .build();

Schritt 3: Geräte für Kunden beanspruchen

Wenn du Geräte für Kunden beanspruchen möchtest, ruf ClaimDevicesAsync an. In diesem Beispiel sind zwei separate Anfragen erforderlich: eine vom Samsung-ResellerService-Objekt und eine vom Google-ResellerService-Objekt.

// Samsung devices
ClaimDevicesResponse samsungResponse = samsungResellerService.claimDevicesAsync(claimSamsungDevicesRequest);

// Other Android devices
ClaimDevicesResponse googleResponse = googleResellerService.claimDevicesAsync(claimGoogleDevicesRequest);

Eine ClaimDevicesAsync-Anfrage gibt eine Liste von Operation-Objekten mit dem Status der Anfrage zurück (in Bearbeitung, abgeschlossen, mit Fehlern abgeschlossen oder fehlgeschlagen). Rufen Sie getOperation auf, um den Status eines Vorgangs zu prüfen (z. B. wenn die Antwort IN_PROGRESS zurückgegeben hat).

// Samsung devices
GetOperationRequest samsungOperationRequest = GetOperationRequest.newBuilder().setOperationId(samsungOperationId).build();
Operation samsungOperation = samsungResellerService.getOperation(samsungOperationRequest);

// Other Android devices
GetOperationRequest googleOperationRequest = GetOperationRequest.newBuilder().setOperationId(googleOperationId).build();
Operation googleOperation = googleResellerService.getOperation(googleOperationRequest);

Anspruch auf einen Batch von Geräten aufheben

Wenn du den Anspruch auf ein Gerät zurückziehst, wird die Verknüpfung mit dem Kunden aufgehoben. Möglicherweise müssen Sie den Anspruch auf ein Gerät zurückziehen, wenn eine Gerätebestellung storniert oder der Versand von Geräten nicht abgeschlossen werden kann. So heben Sie den Anspruch auf einen Batch von Geräten auf:

Schritt 1: UnclaimDevicesRequest-Objekt erstellen

Samsung-Geräte

// Each request can only unclaim devices belonging to a single customer. The request must also
// include the customer's Samsung Knox customer ID.
UnclaimDevicesRequest unclaimSamsungDevicesRequest = UnclaimDevicesRequest.newBuilder()
    .putVendorParams("customerId", "11")
    .addUnclaims(
        DeviceUnclaim.newBuilder()
            .setDeviceIdentifier(
                DeviceIdentifier.newBuilder()
                    .setImei("1234567801")
                    .build())
        .build())
    .addUnclaims(
        DeviceUnclaim.newBuilder()
            .setDeviceIdentifier(
                DeviceIdentifier.newBuilder()
                    .setImei("1234567802")
                    .build())
            .build())
    .build();

Andere Android-Geräte

UnclaimDevicesRequest unclaimGoogleDevicesRequest = UnclaimDevicesRequest.newBuilder()
    .addUnclaims(
        DeviceUnclaim.newBuilder()
            .setDeviceIdentifier(
                DeviceIdentifier.newBuilder()
                    .setImei("1234567803")
                    .build())
            .build())
    .addUnclaims(
        DeviceUnclaim.newBuilder()
            .setDeviceIdentifier(
                DeviceIdentifier.newBuilder()
                    .setImei("1234567804")
                    .build())
            .build())
    .addUnclaims(
        DeviceUnclaim.newBuilder()
            .setDeviceIdentifier(
                DeviceIdentifier.newBuilder()
                    .setImei("1234567805")
                    .build())
            .build())
    .build();

Schritt 2: Anspruch auf Geräte zurückziehen

Wenn du Anspruch auf Geräte zurückziehen möchtest, ruf UnclaimDevicesAsync an. In diesem Beispiel sind zwei separate Anfragen erforderlich: eine vom Samsung-ResellerService-Objekt und eine vom Google-ResellerService-Objekt.

UnclaimDevicesResponse samsungResponse = samsungResellerService.unclaimDevicesAsync(unclaimSamsungDevicesRequest);
UnclaimDevicesResponse googleResponse = googleResellerService.unclaimDevicesAsync(unclaimGoogleDevicesRequest);

Eine UnclaimDevicesAsync-Anfrage gibt eine Liste von Operation-Objekten zurück, die den Status der Anfrage (in Bearbeitung, abgeschlossen, mit Fehlern oder fehlgeschlagen) enthalten. Wenn Sie den Status eines Vorgangs prüfen möchten, z. B. wenn die Antwort IN_PROGRESS zurückgegeben hat, rufen Sie getOperation auf.

Samsung-Geräte

GetOperationRequest samsungOperationRequest = GetOperationRequest.newBuilder().setOperationId(samsungOperationId).build();
Operation samsungOperation = samsungResellerService.getOperation(samsungOperationRequest);

Andere Android-Geräte

GetOperationRequest googleOperationRequest = GetOperationRequest.newBuilder().setOperationId(googleOperationId).build();
Operation googleOperation = googleResellerService.getOperation(googleOperationRequest);

Samsung-Gerät austauschen

Wenn ein Gerät aus irgendeinem Grund ersetzt werden muss, können Sie es austauschen. In diesem Beispiel wird davon ausgegangen, dass Sie ein Samsung-Gerät durch ein anderes ersetzen.

Schritt 1: UnclaimDeviceRequest-Objekt erstellen

// Note: The request must include the customer's Samsung Knox customer ID.
UnclaimDevicesRequest unclaimSamsungDevicesRequest = UnclaimDevicesRequest.newBuilder()
    .putVendorParams("customerId", "11")
    .addUnclaims(
        DeviceUnclaim.newBuilder()
            .setDeviceIdentifier(
                DeviceIdentifier.newBuilder()
                    .setImei("1234567801")
                    .build())
        .build())
    .build();

Schritt 2: UnclaimDeviceAsync anrufen

UnclaimDevicesResponse samsungResponse = samsungResellerService.unclaimDevicesAsync(unclaimSamsungDevicesRequest);

Eine UnclaimDevicesAsync-Anfrage gibt eine Liste von Operation-Objekten zurück, die den Status der Anfrage enthält (in Bearbeitung, abgeschlossen, mit Fehlern abgeschlossen oder fehlgeschlagen). Rufen Sie getOperation auf, um den Status eines Vorgangs zu prüfen (z. B. wenn die Antwort IN_PROGRESS zurückgegeben hat):

GetOperationRequest samsungOperationRequest = GetOperationRequest.newBuilder().setOperationId(samsungOperationId).build();
Operation samsungOperation = samsungResellerService.getOperation(samsungOperationRequest);

Schritt 3: ClaimDeviceRequest-Objekt erstellen

ClaimDevicesRequest claimSamsungDevicesRequest = ClaimDevicesRequest.newBuilder()
   .addClaims(
       DeviceClaim.newBuilder()
           .setCustomer(
               CompanyReference.newBuilder()
                   .setVendor(Vendor.SAMSUNG)
                   .setCompanyId("11")
                   .build())
           .setDeviceIdentifier(
               DeviceIdentifier.newBuilder()
                   .setImei("1234567806")
                   .setManufacturer("Samsung")
                   .build())
       .build())
   .build();

Schritt 4: ClaimDeviceAsync anrufen

ClaimDevicesResponse samsungResponse = samsungResellerService.claimDevicesAsync(claimSamsungDevicesRequest);

Eine ClaimDevicesAsync-Anfrage gibt eine Liste von Operation-Objekten mit dem Status der Anfrage zurück (in Bearbeitung, abgeschlossen, mit Fehlern abgeschlossen oder fehlgeschlagen). Rufen Sie getOperation auf, um den Status eines Vorgangs zu prüfen (z. B. wenn die Antwort IN_PROGRESS zurückgegeben hat):

GetOperationRequest samsungOperationRequest = GetOperationRequest.newBuilder().setOperationId(samsungOperationId).build();
Operation samsungOperation = samsungResellerService.getOperation(samsungOperationRequest);

Android-Gerät ohne Samsung austauschen

Wenn ein Gerät aus irgendeinem Grund ersetzt werden muss, können Sie es austauschen. In diesem Beispiel wird davon ausgegangen, dass Sie ein Android-Gerät (kein Samsung-Gerät) durch ein anderes Android-Gerät ersetzen.

Schritt 1: UnclaimDeviceRequest-Objekt erstellen

UnclaimDeviceRequest unclaimGoogleDeviceRequest = UnclaimDeviceRequest.newBuilder()
    .setUnclaim(
        DeviceUnclaim.newBuilder()
            .setDeviceIdentifier(
                DeviceIdentifier.newBuilder()
                    .setImei("1234567803")
                    .build())
            .build())
    .build();

Schritt 2: UnclaimDevice anrufen

googleResponse = googleResellerService.unclaimDevice(unclaimGoogleDeviceRequest);

Schritt 3: ClaimDeviceRequest-Objekt erstellen

ClaimDeviceRequest claimGoogleDeviceRequest = ClaimDeviceRequest.newBuilder()
    .setClaim(
        DeviceClaim.newBuilder()
            .setCustomer(
                CompanyReference.newBuilder()
                    .setVendor(Vendor.GOOGLE)
                    .setCompanyId("21")
                    .build())
            .setDeviceIdentifier(
                DeviceIdentifier.newBuilder()
                    .setImei("1234567807")
                    .setManufacturer("Google")
                    .build())
            .build())
       .build();

Schritt 4: ClaimDevice anrufen

ClaimDeviceResponse response = googleResellerService.claimDevice(claimGoogleDeviceRequest);

Bei Erfolg gibt der Aufruf ein ClaimDeviceResponse-Objekt zurück, das deviceId enthält. Andernfalls wird eine häufige Ausnahme mit einem Fehlercode ausgelöst.