Na tej stronie znajdziesz przykłady typowych operacji, które możesz wykonywać w ramach wspólnej biblioteki dla sprzedawców Androida, w tym:
- Tworzenie obiektów
ResellerService
- Tworzenie obiektów
Customer
- Rejestrowanie dużej liczby urządzeń
- Odzyskiwanie grupy urządzeń
- Wymiana urządzenia Samsung
- Wymiana urządzenia z Androidem (innego niż Samsung)
Utwórz obiekty (ResellerService
)
Użyj klas fabrycznych Samsung i Google do utworzenia obiektów ResellerService
.
W przypadku obiektów ResellerService
dostępny jest wspólny zestaw metod rejestrowania na urządzeniach Samsung i innych urządzeniach z Androidem.
Urządzenia Samsung
Przykład poniżej pokazuje, jak utworzyć obiekt ResellerService
za pomocą klasy SamsungResellerServiceFactory
, aby zarządzać urządzeniami Samsung.
Zanim to zrobisz, musisz dołączyć do Programu wdrażania Knox (KDP).
ResellerService samsungResellerService = SamsungResellerServiceFactory.createResellerService(resellerId, serviceAccountKeyFilePath, clientIdentifier);
Inne urządzenia z Androidem
Przykład poniżej pokazuje, jak utworzyć obiekt ResellerService
za pomocą klasy GoogleResellerServiceFactory
, aby zarządzać innymi urządzeniami z Androidem (nie Samsung). Zanim to zrobisz, musisz wykonać czynności opisane w pomocy tego przewodnika, aby uzyskać klucz 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 marki, musi podać 2 identyfikatory klienta.
Urządzenia Samsung
Aby zarządzać urządzeniami Samsung, użyj identyfikatora klienta Knox. Aby uzyskać identyfikator klienta Knox, musisz najpierw utworzyć obiekt Customer
. Aby to zrobić, zadzwoń na numer createCustomer
, używając SamsungResellerService
utworzonego na podstawie 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 identyfikatora klienta rejestracji typu zero-touch. Jeśli klient korzysta już z rejestracji typu zero-touch u innego sprzedawcy, użyj jego dotychczasowego identyfikatora klienta. W przeciwnym razie musisz utworzyć obiekt Customer
. Aby to zrobić, wywołaj funkcję createCustomer
, używając ResellerService
utworzonego na podstawie GoogleResellerServiceFactory
. Na przykład:
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
. Identyfikator klienta możesz pobrać z odpowiedzi.
Reklamowanie partii urządzeń
Potwierdzenie własności urządzenia powoduje powiązanie urządzenia z klientem. Jeśli na przykład sprzedajesz pakiet urządzeń klientowi, możesz dla niego zgłosić prawa do urządzeń.
Ten przykład pokazuje jedną z możliwości przetwarzania partii urządzeń, która obejmuje zamówienia urządzeń od różnych producentów (Samsung i inne urządzenia z Androidem) od różnych klientów.
Krok 1. Porządkuj urządzenia i klientów
W tabeli z numerami IMEI urządzeń, producentami i identyfikatorami klientów, którym urządzenia zostały sprzedane, można utworzyć 2 listy: zamówienia urządzeń Samsung i inne zamówienia urządzeń z Androidem (nie Samsung). Następnie na każdej liście pogrupuj urządzenia według klienta. Na przykład:
Urządzenia Samsung
Nazwa klienta | Identyfikator klienta Samsung Knox | Producent | IMEI |
---|---|---|---|
ABC corp | 11 |
Samsung |
|
Inne urządzenia z Androidem
Nazwa klienta | Identyfikator klienta | Producent | IMEI |
---|---|---|---|
ABC corp | 21 |
Google |
1234567803 |
XYZ corp | 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. Przypisz urządzenia klientom
Aby zarezerwować urządzenia dla klientów, zadzwoń pod numer ClaimDevicesAsync
. W tym przykładzie wymagane są 2 osobne żądania: jedno z obiektu SamsungResellerService
i drugie z obiektu GoogleResellerService
.
// Samsung devices
ClaimDevicesResponse samsungResponse = samsungResellerService.claimDevicesAsync(claimSamsungDevicesRequest);
// Other Android devices
ClaimDevicesResponse googleResponse = googleResellerService.claimDevicesAsync(claimGoogleDevicesRequest);
Żądanie ClaimDevicesAsync
zwraca listę obiektów Operation
, która zawiera stan żądania (w toku, zakończone, zakończone z błędami lub nieudane). Aby sprawdzić stan operacji (np. jeśli odpowiedź zwróciła wartość IN_PROGRESS
), wywołaj 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);
Rezygnacja z przypisania grupy urządzeń
Odwołanie roszczenia dotyczące urządzenia powoduje odłączenie go od klienta. Anulowanie rezerwacji urządzenia może być konieczne, jeśli zamówienie na urządzenie zostanie anulowane lub nie można zrealizować wysyłki urządzenia. Aby wycofać zgłoszenie dotyczące 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. Usuń rezerwację urządzeń
Aby cofnąć rezerwację urządzeń, zadzwoń pod numer UnclaimDevicesAsync
. W tym przykładzie wymagane są 2 oddzielne żądania: jedno z obiektu Samsung ResellerService
i jedno z obiektu Google ResellerService
.
UnclaimDevicesResponse samsungResponse = samsungResellerService.unclaimDevicesAsync(unclaimSamsungDevicesRequest);
UnclaimDevicesResponse googleResponse = googleResellerService.unclaimDevicesAsync(unclaimGoogleDevicesRequest);
Prośba UnclaimDevicesAsync
zwraca listę obiektów Operation
, która zawiera stan prośby (w toku, zakończona, zakończona z błędami lub zakończona niepowodzeniem). Aby sprawdzić stan operacji (np. jeśli odpowiedź zwróciła 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 z jakiegoś powodu urządzenie wymaga wymiany, 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ń UnclaimDeviceAsync
UnclaimDevicesResponse samsungResponse = samsungResellerService.unclaimDevicesAsync(unclaimSamsungDevicesRequest);
Żądanie UnclaimDevicesAsync
zwraca listę obiektów Operation
, która zawiera ich stan (w toku, ukończono, ukończono z błędami lub nie powiodło się). Aby sprawdzić stan operacji (np. czy 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ń pod numer ClaimDeviceAsync
ClaimDevicesResponse samsungResponse = samsungResellerService.claimDevicesAsync(claimSamsungDevicesRequest);
Prośba ClaimDevicesAsync
zwraca listę obiektów Operation
, która zawiera stan prośby (w toku, zakończona, zakończona z błędami lub nieudana). Aby sprawdzić stan operacji (np. czy 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 (nie Samsunga)
Jeśli urządzenie wymaga wymiany z jakiegokolwiek powodu, możesz je wymienić. W tym przykładzie zakładamy, że wymieniasz urządzenie z Androidem (nie Samsunga) na inne urządzenie z Androidem (nie Samsunga).
Krok 1. Utwórz obiekt UnclaimDeviceRequest
UnclaimDeviceRequest unclaimGoogleDeviceRequest = UnclaimDeviceRequest.newBuilder()
.setUnclaim(
DeviceUnclaim.newBuilder()
.setDeviceIdentifier(
DeviceIdentifier.newBuilder()
.setImei("1234567803")
.build())
.build())
.build();
Krok 2. Zadzwoń 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ń pod numer ClaimDevice
ClaimDeviceResponse response = googleResellerService.claimDevice(claimGoogleDeviceRequest);
Jeśli operacja się powiedzie, zwróci obiekt ClaimDeviceResponse
zawierający element deviceId
. W przeciwnym razie rzuca ona standardowe wyjątki zawierające kod błędu.