На этой странице представлены примеры некоторых распространенных операций, которые вы можете выполнять с общей библиотекой реселлеров 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
для управления другими устройствами 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 | |
Другие устройства Android
Имя клиента | Идентификатор клиента | Производитель | IMEI |
---|---|---|---|
корпорация АВС | 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
. В противном случае выдается общее исключение, содержащее код ошибки.