Общие операции

На этой странице представлены примеры некоторых распространенных операций, которые вы можете выполнять с общей библиотекой реселлеров Android, в том числе:


Создание объектов ResellerService

Используйте фабричные классы Samsung и Google для создания объектов ResellerService . С объектами ResellerService доступен общий набор методов для регистрации Samsung и других устройств Android.

устройства Самсунг

В приведенном ниже примере показано, как создать объект ResellerService с использованием класса SamsungResellerServiceFactory для управления устройствами Samsung.

Прежде чем вы сможете это сделать, вам необходимо подключиться к программе развертывания Knox (KDP).

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

Другие устройства Android

В приведенном ниже примере показано, как создать объект ResellerService с использованием класса GoogleResellerServiceFactory для управления другими устройствами Android (не Samsung). Прежде чем вы сможете это сделать, вам необходимо выполнить действия, описанные в разделе Начало работы, для автоматической регистрации, чтобы получить resellerId и ключ учетной записи службы.

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

Создание объектов Customer

Клиенту, приобретающему устройства Samsung и сторонних производителей, требуются два идентификатора клиента.

устройства Самсунг

Для управления устройствами Samsung вы используете идентификатор клиента Knox. Чтобы получить идентификатор клиента Knox, вам необходимо сначала создать объект Customer . Для этого вызовите createCustomer , используя SamsungResellerService , созданный из SamsungResellerServiceFactory . Вот пример:

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();

В случае успеха запрос возвращает объект CreateCustomerResponse , из которого можно извлечь идентификатор клиента Knox.

Другие устройства Android

Для других устройств Android клиенту требуется идентификатор клиента для автоматической регистрации. Если клиент уже использует автоматическую регистрацию у другого реселлера, вы используете его существующий идентификатор клиента. В противном случае вам необходимо создать объект Customer . Для этого вызовите createCustomer , используя ResellerService , созданный из GoogleResellerServiceFactory . Вот пример:

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();

В случае успеха запрос возвращает объект CreateCustomerResponse . Вы можете получить идентификатор клиента из ответа.


Заявить права на партию устройств

Заявка на устройство создает связь между устройством и клиентом. Например, если вы продаете партию устройств покупателю, вы заявляете права на устройства для этого клиента.

В этом примере показан один из способов обработки пакета устройств, включающего заказы устройств от нескольких производителей (Samsung и другие устройства Android) от нескольких клиентов.

Шаг 1. Организуйте устройства и клиентов

Учитывая таблицу IMEI устройств, производителей и идентификаторов клиентов, которым были проданы устройства, один из способов управления заказами — организовать их в два списка: заказы на устройства Samsung и другие заказы на устройства Android (не Samsung). Затем для каждого списка сгруппируйте устройства по клиентам. Например:

устройства Самсунг

Имя клиента Идентификатор клиента Samsung Knox Производитель IMEI
корпорация АВС 11 Samsung

1234567801

1234567802

Другие устройства Android

Имя клиента Идентификатор клиента Производитель IMEI
корпорация АВС 21 Google 1234567803
корпорация XYZ 22 Sony

1234567804

1234567805

Шаг 2. Создайте объект ClaimDevicesRequest .

устройства Самсунг

// 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();

Другие устройства Android

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();

Шаг 3. Заявите права на устройства для клиентов

Чтобы заявить права на устройства для клиентов, вызовите ClaimDevicesAsync . В этом примере требуется два отдельных запроса: один от объекта Samsung ResellerService и один от объекта Google ResellerService .

// Samsung devices
ClaimDevicesResponse samsungResponse = samsungResellerService.claimDevicesAsync(claimSamsungDevicesRequest);

// Other Android devices
ClaimDevicesResponse googleResponse = googleResellerService.claimDevicesAsync(claimGoogleDevicesRequest);

Запрос ClaimDevicesAsync возвращает список объектов Operation , которые содержат состояние запроса (в процессе, завершено, завершено с ошибками или не выполнено). Чтобы проверить статус операции (например, вернулся ли ответ IN_PROGRESS ), вызовите 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);

Отменить права на партию устройств

Отмена претензий на устройство отменяет его связь с клиентом. Возможно, вам придется отказаться от использования устройства, если заказ на устройство отменен или поставка устройств не может быть успешно завершена. Чтобы отменить использование пакета устройств, выполните следующие действия:

Шаг 1. Создайте объект UnclaimDevicesRequest .

устройства Самсунг

// 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();

Другие устройства Android

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();

Шаг 2. Отмените права на устройства

Чтобы отменить права на устройства, вызовите UnclaimDevicesAsync . В этом примере требуется два отдельных запроса: один от объекта Samsung ResellerService и один от объекта Google ResellerService .

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

Запрос UnclaimDevicesAsync возвращает список объектов Operation , которые содержат статус запроса (в процессе, завершен, завершен с ошибками или не выполнен). Чтобы проверить статус операции (например, если ответ вернул IN_PROGRESS ), вызовите getOperation .

устройства Самсунг

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

Другие устройства Android

GetOperationRequest googleOperationRequest = GetOperationRequest.newBuilder().setOperationId(googleOperationId).build();
Operation googleOperation = googleResellerService.getOperation(googleOperationRequest);

Обменять устройство Samsung

Если устройство по какой-либо причине нуждается в замене, вы можете его обменять. В этом примере предполагается, что вы меняете устройство Samsung на другое устройство Samsung.

Шаг 1. Создайте объект 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();

Шаг 2. Вызов UnclaimDeviceAsync

UnclaimDevicesResponse samsungResponse = samsungResellerService.unclaimDevicesAsync(unclaimSamsungDevicesRequest);

Запрос UnclaimDevicesAsync возвращает список объектов Operation , который содержит состояние запроса (в процессе, завершено, завершено с ошибками или не выполнено). Чтобы проверить статус операции (например, вернулся ли ответ IN_PROGRESS ), вызовите getOperation :

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

Шаг 3. Создайте объект 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();

Шаг 4. Вызов ClaimDeviceAsync

ClaimDevicesResponse samsungResponse = samsungResellerService.claimDevicesAsync(claimSamsungDevicesRequest);

Запрос ClaimDevicesAsync возвращает список объектов Operation , который содержит состояние запроса (в процессе, завершено, завершено с ошибками или не выполнено). Чтобы проверить статус операции (например, вернулся ли ответ IN_PROGRESS ), вызовите getOperation :

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

Обмен устройства Android (не Samsung)

Если устройство по какой-либо причине нуждается в замене, вы можете его обменять. В этом примере предполагается, что вы меняете устройство Android (не Samsung) на другое устройство Android (не Samsung).

Шаг 1. Создайте объект UnclaimDeviceRequest

UnclaimDeviceRequest unclaimGoogleDeviceRequest = UnclaimDeviceRequest.newBuilder()
    .setUnclaim(
        DeviceUnclaim.newBuilder()
            .setDeviceIdentifier(
                DeviceIdentifier.newBuilder()
                    .setImei("1234567803")
                    .build())
            .build())
    .build();

Шаг 2. Вызов UnclaimDevice

googleResponse = googleResellerService.unclaimDevice(unclaimGoogleDeviceRequest);

Шаг 3. Создайте объект 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();

Шаг 4. Вызов ClaimDevice

ClaimDeviceResponse response = googleResellerService.claimDevice(claimGoogleDeviceRequest);

В случае успеха вызов возвращает объект ClaimDeviceResponse содержащий deviceId . В противном случае выдается общее исключение, содержащее код ошибки.