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 erstellenCustomer
-Objekte erstellen- Mehrere Geräte gleichzeitig beanspruchen
- Einen Anspruch auf mehrere Geräte zurückziehen
- Samsung-Gerät austauschen
- Android-Geräte ohne Samsung austauschen
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 |
|
Andere Android-Geräte
Kundenname | Kundennummer | Hersteller | IMEI |
---|---|---|---|
Logo: ABC | 21 |
Google |
1234567803 |
Unternehmen XYZ | 22 |
Sony |
|
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.