Typowe operacje

Na tej stronie znajdziesz przykłady kilku typowych operacji, które można wykonywać z biblioteki wspólnych sprzedawców Androida, w tym:


Utwórz obiekty (ResellerService)

Użyj klas fabrycznych Samsung i Google, aby utworzyć obiekty ResellerService. W przypadku obiektów ResellerService dostępny jest wspólny zestaw metod do rejestracji Samsung i inne urządzenia z Androidem.

Urządzenia Samsung

Poniższy przykład pokazuje, jak utworzyć obiekt ResellerService za pomocą SamsungResellerServiceFactory do zarządzania urządzeniami Samsung.

Zanim to zrobisz, musisz się zarejestrować. za pomocą Knox Deployment Program (KDP).

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

Inne urządzenia z Androidem

Poniższy przykład pokazuje, jak utworzyć obiekt ResellerService za pomocą Klasa GoogleResellerServiceFactory do zarządzania Androidem (innym niż Samsung) urządzenia. W tym celu wykonaj czynności opisane w artykule Pierwsze kroki. do rejestracji typu zero-touch aby uzyskać resellerId i klucz konta usługi.

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

Utwórz obiekty (Customer)

Klient kupujący urządzenia Samsung i inne urządzenia wymaga podania dwóch identyfikatorów klienta.

Urządzenia Samsung

Do zarządzania urządzeniami Samsung musisz używać identyfikatora klienta Knox. Aby uzyskać Identyfikator klienta Knox, musisz najpierw utworzyć obiekt Customer. Aby to zrobić: wywołaj createCustomer przy użyciu SamsungResellerService utworzonego 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żesz wyodrębnić identyfikator klienta Knox.

Inne urządzenia z Androidem

W przypadku innych urządzeń z Androidem klient wymaga rejestracji typu zero-touch. identyfikatora klienta. Jeśli klient korzysta już z rejestracji typu zero-touch na innej sprzedawcy, należy użyć identyfikatora klienta tego sprzedawcy. W przeciwnym razie musisz utworzyć Customer obiekt. Aby to zrobić, zadzwoń pod numer createCustomer przy użyciu: ResellerService utworzony na podstawie tabeli 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ę uda, żądanie zwróci obiekt CreateCustomerResponse. Dostępne opcje pobierz identyfikator klienta z odpowiedzi.


Zgłaszanie własności grupy urządzeń

Zgłoszenie własności urządzenia tworzy powiązanie między nim a klientem. Dla: Jeśli na przykład sprzedajesz klientowi wiele urządzeń, możesz zgłosić roszczenie do urządzeń dla tego klienta.

Ten przykład pokazuje jeden sposób przetwarzania grupy urządzeń, która zawiera: zamówienia urządzeń wielu producentów (Samsung i inne urządzenia z Androidem urządzeń) od różnych klientów.

Krok 1. Uporządkuj urządzenia i klientów

W tabeli z numerami IMEI, producentami i identyfikatorami klientów w przypadku urządzeń, którym zostały sprzedane urządzenia. Jednym ze sposobów zarządzania zamówieniami jest podzielenie ich na listy: zamówienia urządzeń Samsung i inne zamówienia urządzeń z Androidem (innych niż Samsung). Następnie dla każdej listy pogrupuj urządzenia według klienta. Na przykład:

Urządzenia Samsung

Nazwa klienta Identyfikator klienta Samsung Knox Producent IMEI
ABC spółka 11 Samsung

1234567801

1234567802

Inne urządzenia z Androidem

Nazwa klienta Identyfikator klienta Producent IMEI
ABC spółka 21 Google 1234567803
spółka XYZ 22 Sony

1234567804

1234567805

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 dla klientów

Aby zarezerwować urządzenia dla klientów, zadzwoń pod numer ClaimDevicesAsync. Te przykłady wymaga 2 osobnych żądań: jednego z obiektu ResellerService Samsunga i drugą 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óra zawierają informacje o stanie żądania (w toku, zakończone, ukończone z błędami, lub niepowodzenie). Aby sprawdzić stan operacji (na przykład odpowiedź zwrócono 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);

Usuwanie rezerwacji grupy urządzeń

Usunięcie roszczenia powoduje usunięcie powiązania urządzenia z klientem. Możesz muszą anulować rezerwację urządzenia, jeśli zamówienie na urządzenie zostanie anulowane lub przesyłka o wartości Nie można ukończyć instalacji urządzeń. Aby cofnąć zarezerwowanie grupy urządzeń: wykonaj te czynności:

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 osobne żądania: jedno z obiektu Samsung ResellerService, a drugie z obiekt Google ResellerService.

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

Żądanie UnclaimDevicesAsync zwraca listę obiektów Operation, która zawierają informacje o stanie żądania (w toku, zakończone, ukończone z błędami, lub nieudane) Aby sprawdzić stan operacji (na przykład jeśli odpowiedź zwrócony IN_PROGRESS), wywołaj 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ć. Ten Zakładamy, że wymieniasz urządzenie Samsung na inny urządzenia.

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óra zawiera stan żądania (w toku, zakończone, ukończone z błędami, lub niepowodzenie). Aby sprawdzić stan operacji (na przykład odpowiedź zwrócono IN_PROGRESS), wywołaj 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);

Żądanie ClaimDevicesAsync zwraca listę obiektów Operation, która zawiera stan żądania (w toku, zakończone, ukończone z błędami, lub niepowodzenie). Aby sprawdzić stan operacji (na przykład odpowiedź zwrócono IN_PROGRESS), wywołaj getOperation:

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

Wymiana urządzenia z Androidem (innego niż Samsung)

Jeśli z jakiegoś powodu urządzenie wymaga wymiany, możesz je wymienić. Ten Zakładamy, że wymieniasz urządzenie z Androidem (innego niż Samsung) na na innym urządzeniu z Androidem (innym 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ń pod numer ClaimDevice

ClaimDeviceResponse response = googleResellerService.claimDevice(claimGoogleDeviceRequest);

Jeśli się uda, wywołanie zwróci obiekt ClaimDeviceResponse zawierający deviceId W przeciwnym razie zgłasza typowy wyjątek zawierający kod błędu.