На этой странице приведены примеры некоторых распространенных операций, которые вы можете выполнять с общей библиотекой реселлеров Android, в том числе:
- Создание объектов
ResellerService
- Создание объектов
Customer
- Заявка на партию устройств
- Отмена заявки на партию устройств
- Обмен устройства Samsung.
- Обмен устройства Android (не Samsung)
Создание объектов ResellerService
Используйте фабричные классы Samsung и Google для создания объектов ResellerService
. С объектами ResellerService
доступен общий набор методов для регистрации Samsung и других устройств Android.
устройства Самсунг
В приведенном ниже примере показано, как создать объект ResellerService
с помощью класса SamsungResellerServiceFactory
для управления устройствами Samsung.
Прежде чем вы сможете это сделать, вам необходимо подключиться к программе развертывания Knox (KDP).
ResellerService samsungResellerService = SamsungResellerServiceFactory.createResellerService(resellerId, serviceAccountKeyFilePath, clientIdentifier);
Другие Android-устройства
В приведенном ниже примере показано, как создать объект ResellerService
с помощью класса GoogleResellerServiceFactory
для управления другими (не Samsung) устройствами Android. Прежде чем вы сможете это сделать, вам необходимо выполнить шаги, описанные в разделе Начало работы для автоматической регистрации , чтобы получить resellerId
и ключ сервисной учетной записи.
ResellerService googleResellerService = GoogleResellerServiceFactory.createResellerService(resellerId, serviceAccountKeyFilePath);
Создание объектов Customer
Покупателю, приобретающему устройства Samsung и других производителей, требуется два идентификатора клиента.
устройства Самсунг
Для управления устройствами Samsung вы используете идентификатор клиента Knox Customer ID. Чтобы получить идентификатор клиента 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 |
---|---|---|---|
ABC корп. | 11 | Samsung | |
Другие Android-устройства
Имя Клиента | Пользовательский ИД | Производитель | IMEI |
---|---|---|---|
ABC корп. | 21 | Google | 1234567803 |
XYZ корп. | 22 | Sony | |
Шаг 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
. В противном случае выдается обычное исключение, содержащее код ошибки.