Na tej stronie przedstawiamy przykłady typowych operacji, które można wykonać w Bibliotece wspólnych sprzedawców na Androida:
- Tworzenie obiektów
ResellerService
- Tworzenie obiektów
Customer
- Zgłaszanie praw do grupy urządzeń
- Anulowanie rezerwacji na grupie urządzeń
- Wymiana urządzenia Samsung
- Wymienianie urządzenia z Androidem (inne niż Samsung)
Tworzenie obiektów ResellerService
Do tworzenia obiektów ResellerService
używaj klas fabrycznych Samsung i Google.
W przypadku obiektów ResellerService
typowy zestaw metod umożliwia rejestrowanie urządzeń Samsung i innych urządzeń z Androidem.
Urządzenia Samsung
Poniższy przykład pokazuje, jak utworzyć obiekt ResellerService
za pomocą klasy SamsungResellerServiceFactory
do zarządzania urządzeniami Samsung.
Zanim to zrobisz, musisz zarejestrować się w programie wdrażania Knox.
ResellerService samsungResellerService = SamsungResellerServiceFactory.createResellerService(resellerId, serviceAccountKeyFilePath, clientIdentifier);
Inne urządzenia z Androidem
Poniższy przykład pokazuje, jak utworzyć obiekt ResellerService
za pomocą klasy GoogleResellerServiceFactory
do zarządzania innymi urządzeniami z Androidem (bez Samsunga). Zanim to zrobisz, musisz wykonać czynności opisane w artykule Rejestracja typu zero-touch, aby uzyskać resellerId
i klucz konta usługi.
ResellerService googleResellerService = GoogleResellerServiceFactory.createResellerService(resellerId, serviceAccountKeyFilePath);
Tworzenie obiektów Customer
Klient, który kupuje urządzenia Samsung i inne firmy, potrzebuje 2 identyfikatorów.
Urządzenia Samsung
Do zarządzania urządzeniami Samsung używasz identyfikatora klienta Knox klienta. Aby uzyskać identyfikator klienta Knox, musisz najpierw utworzyć obiekt Customer
. Aby to zrobić, wywołaj metodę createCustomer
za pomocą metody SamsungResellerService
utworzonej z SamsungResellerServiceFactory
. Oto przykład:
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();
Jeśli żądanie się powiedzie, żądanie zwróci obiekt CreateCustomerResponse
, z którego można wyodrębnić identyfikator klienta Knox.
Inne urządzenia z Androidem
W przypadku innych urządzeń z Androidem klient wymaga rejestracji typu zero-touch. Jeśli klient korzysta już z rejestracji typu zero-touch u innego sprzedawcy, użyj jego identyfikatora. W przeciwnym razie musisz utworzyć obiekt Customer
. Aby to zrobić, wywołaj metodę createCustomer
przy użyciu metody ResellerService
utworzonej z GoogleResellerServiceFactory
. np.:
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();
Jeśli operacja się powiedzie, żądanie zwróci obiekt CreateCustomerResponse
. Możesz go pobrać z odpowiedzi.
Odbierz grupę urządzeń
Odebranie urządzenia powoduje powiązanie między nim a klientem. Jeśli na przykład sprzedajesz grupie urządzeń klientowi, możesz zarezerwować ich urządzenia.
Ten przykład pokazuje jeden sposób przetwarzania grupy urządzeń, która obejmuje zamówienia składane przez wielu producentów (Samsung i inne urządzenia z Androidem) od różnych klientów.
Krok 1. Uporządkuj urządzenia i klientów
Biorąc pod uwagę tablicę IMEI, producenta i identyfikatora klientów, którym urządzenia zostały sprzedane, jednym ze sposobów zarządzania zamówieniami jest podzielenie ich na dwie listy: zamówienia na urządzenia Samsung i inne zamówienia na urządzenia z systemem Android (inne niż Samsung). Następnie pogrupuj urządzenia według klientów. Przykład:
Urządzenia Samsung
Nazwa klienta | Identyfikator klienta Samsung Knox | Producent | IMEI |
---|---|---|---|
Firma ABC | 11 |
Samsung |
|
Inne urządzenia z Androidem
Nazwa klienta | Identyfikator klienta | Producent | IMEI |
---|---|---|---|
Firma ABC | 21 |
Google |
1234567803 |
Firma XYZ | 22 |
Sony |
|
Krok 2. Utwórz obiekt ClaimDevicesRequest
Urządzenia Samsung
// 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();
Inne urządzenia z Androidem
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();
Krok 3. Zarezerwuj urządzenia klientów
Aby odebrać urządzenia klientów, zadzwoń na numer ClaimDevicesAsync
. W tym przykładzie wymagane są 2 osobne żądania: jedno z obiektu Samsung ResellerService
i jedno z obiektu ResellerService
Google.
// Samsung devices
ClaimDevicesResponse samsungResponse = samsungResellerService.claimDevicesAsync(claimSamsungDevicesRequest);
// Other Android devices
ClaimDevicesResponse googleResponse = googleResellerService.claimDevicesAsync(claimGoogleDevicesRequest);
Żądanie ClaimDevicesAsync
zwraca listę obiektów Operation
, które zawierają stan żądania (w toku, ukończone, zakończone z błędami lub nieudane). Aby sprawdzić stan operacji (np. jeśli odpowiedź zwróciła wartość IN_PROGRESS
), wywołaj funkcję getOperation
.
// 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);
Cofanie rezerwacji grupy urządzeń
Odłączenie urządzenia powoduje odłączenie go od klienta. Jeśli zamówienie na urządzenie zostanie anulowane lub nie uda się go przesłać, konieczne może być anulowanie zgłoszenia urządzenia. Aby anulować wybór grupy urządzeń:
Krok 1. Utwórz obiekt UnclaimDevicesRequest
Urządzenia Samsung
// 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();
Inne urządzenia z Androidem
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();
Krok 2. Anuluj rezerwację urządzeń
Aby anulować rezerwację urządzeń, zadzwoń na numer UnclaimDevicesAsync
. W tym przykładzie wymagane są 2 osobne żądania: jedno z obiektu Samsung ResellerService
i jedno z obiektu ResellerService
Google.
UnclaimDevicesResponse samsungResponse = samsungResellerService.unclaimDevicesAsync(unclaimSamsungDevicesRequest);
UnclaimDevicesResponse googleResponse = googleResellerService.unclaimDevicesAsync(unclaimGoogleDevicesRequest);
Żądanie UnclaimDevicesAsync
zwraca listę obiektów Operation
, które zawierają stan żądania (w toku, ukończone, zakończone z błędami lub nieudane). Aby sprawdzić stan operacji (na przykład zwrócono odpowiedź IN_PROGRESS
), wywołaj funkcję getOperation
.
Urządzenia Samsung
GetOperationRequest samsungOperationRequest = GetOperationRequest.newBuilder().setOperationId(samsungOperationId).build();
Operation samsungOperation = samsungResellerService.getOperation(samsungOperationRequest);
Inne urządzenia z Androidem
GetOperationRequest googleOperationRequest = GetOperationRequest.newBuilder().setOperationId(googleOperationId).build();
Operation googleOperation = googleResellerService.getOperation(googleOperationRequest);
Wymiana urządzenia Samsung
Jeśli urządzenie wymaga wymiany z jakiegoś powodu, możesz je wymienić. W tym przykładzie zakładamy, że wymieniasz urządzenie Samsung na inne urządzenie Samsung.
Krok 1. Utwórz obiekt UnclaimDeviceRequest
// 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();
Krok 2. Zadzwoń pod numer UnclaimDeviceAsync
UnclaimDevicesResponse samsungResponse = samsungResellerService.unclaimDevicesAsync(unclaimSamsungDevicesRequest);
Żądanie UnclaimDevicesAsync
zwraca listę obiektów Operation
, które zawierają stan żądania (w toku, ukończone, z błędami lub nieudane). Aby sprawdzić stan operacji (np. zwrócono odpowiedź IN_PROGRESS
), wywołaj funkcję getOperation
:
GetOperationRequest samsungOperationRequest = GetOperationRequest.newBuilder().setOperationId(samsungOperationId).build();
Operation samsungOperation = samsungResellerService.getOperation(samsungOperationRequest);
Krok 3. Utwórz obiekt ClaimDeviceRequest
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();
Krok 4. Zadzwoń do firmy ClaimDeviceAsync
ClaimDevicesResponse samsungResponse = samsungResellerService.claimDevicesAsync(claimSamsungDevicesRequest);
Żądanie ClaimDevicesAsync
zwraca listę obiektów Operation
, które zawierają stan żądania (w toku, zakończone, ukończone z błędami lub nieudane). Aby sprawdzić stan operacji (np. zwrócono odpowiedź IN_PROGRESS
), wywołaj funkcję getOperation
:
GetOperationRequest samsungOperationRequest = GetOperationRequest.newBuilder().setOperationId(samsungOperationId).build();
Operation samsungOperation = samsungResellerService.getOperation(samsungOperationRequest);
Wymiana urządzenia z Androidem (innego niż Samsung)
Jeśli urządzenie wymaga wymiany z jakiegoś powodu, możesz je wymienić. W tym przykładzie zakładamy, że wymieniasz urządzenie z Androidem (inne niż Samsung), a nie urządzenie inne niż Samsung.
Krok 1. Utwórz obiekt UnclaimDeviceRequest
UnclaimDeviceRequest unclaimGoogleDeviceRequest = UnclaimDeviceRequest.newBuilder()
.setUnclaim(
DeviceUnclaim.newBuilder()
.setDeviceIdentifier(
DeviceIdentifier.newBuilder()
.setImei("1234567803")
.build())
.build())
.build();
Krok 2. Zadzwoń pod numer UnclaimDevice
googleResponse = googleResellerService.unclaimDevice(unclaimGoogleDeviceRequest);
Krok 3. Utwórz obiekt ClaimDeviceRequest
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();
Krok 4. Zadzwoń do firmy ClaimDevice
ClaimDeviceResponse response = googleResellerService.claimDevice(claimGoogleDeviceRequest);
Jeśli operacja się uda, wywołanie ClaimDeviceResponse
zwróci obiekt zawierający deviceId
. W przeciwnym razie zgłasza powszechny wyjątek zawierający kod błędu.