Typowe operacje

Na tej stronie znajdziesz przykłady typowych operacji, które możesz wykonywać w ramach wspólnej biblioteki dla sprzedawców Androida, w tym:


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

1234567801

1234567802

Inne urządzenia z Androidem

Nazwa klienta Identyfikator klienta Producent IMEI
ABC corp 21 Google 1234567803
XYZ corp 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. 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.