Esta página mostra exemplos de algumas operações comuns que podem ser realizadas Biblioteca comum do revendedor Android, incluindo:
- Crie objetos
ResellerService
- Crie objetos
Customer
- Como reivindicar um lote de dispositivos
- Como cancelar a reivindicação de um lote de dispositivos
- Como trocar um dispositivo Samsung
- Como trocar um dispositivo Android (não Samsung)
Criar objetos ResellerService
Use as classes de fábrica da Samsung e do Google para criar objetos ResellerService
.
Com objetos ResellerService
, um conjunto comum de métodos está disponível para registro
Samsung e outros dispositivos Android.
Dispositivos Samsung
O exemplo abaixo mostra como criar um objeto ResellerService
usando o
SamsungResellerServiceFactory
para gerenciar dispositivos Samsung.
Antes de fazer isso, é preciso integrar com o Programa de Implantação Knox (KDP).
ResellerService samsungResellerService = SamsungResellerServiceFactory.createResellerService(resellerId, serviceAccountKeyFilePath, clientIdentifier);
Outros dispositivos Android
O exemplo abaixo mostra como criar um objeto ResellerService
usando o
GoogleResellerServiceFactory
para gerenciar outros dispositivos Android (que não sejam da Samsung).
dispositivos. Antes de fazer isso, siga as etapas em Começar
para o registro sem toque
para receber o resellerId
e a chave da conta de serviço.
ResellerService googleResellerService = GoogleResellerServiceFactory.createResellerService(resellerId, serviceAccountKeyFilePath);
Criar objetos Customer
Um cliente que compra dispositivos Samsung e não Samsung precisa de dois IDs de cliente.
Dispositivos Samsung
Para gerenciar dispositivos Samsung, use o ID de cliente Knox do cliente. Para conseguir o
ID de cliente do Knox, primeiro você precisa criar um objeto Customer
. Para isso,
chamar createCustomer
usando um SamsungResellerService
criado no
SamsungResellerServiceFactory
Veja um exemplo:
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();
Se for bem-sucedida, a solicitação retornará um objeto CreateCustomerResponse
, do qual
você pode extrair o ID de cliente Knox.
Outros dispositivos Android
Em outros dispositivos Android, o cliente exige o registro sem toque.
ID de cliente. Se um cliente já usa o registro sem toque com outro
revendedor, você usa o ID de cliente atual dele. Caso contrário, é preciso criar um
Customer
. Para fazer isso, chame createCustomer
usando um ResellerService
.
criada a partir do GoogleResellerServiceFactory
. Veja um exemplo:
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();
Se for bem-sucedida, a solicitação retornará um objeto CreateCustomerResponse
. Você pode
recuperar o ID de cliente da resposta.
Reivindicar um lote de dispositivos
A reivindicação de um dispositivo cria uma associação entre o dispositivo e um cliente. Para Por exemplo, se você vende um lote de dispositivos a um cliente, reivindicaria o dispositivos para esse cliente.
Este exemplo mostra uma maneira de processar um lote de dispositivos que inclui pedidos de dispositivos de vários fabricantes (Samsung e outros dispositivos) de vários clientes.
Etapa 1: organize os dispositivos e os clientes
Dada uma tabela de IMEIs de dispositivos, fabricantes e IDs dos clientes do para onde os dispositivos foram vendidos, uma forma de gerenciar pedidos é organizá-los em dois listas: pedidos de dispositivos Samsung e outros pedidos de dispositivos Android (não Samsung). Em seguida, para cada lista, agrupe os dispositivos por cliente. Exemplo:
Dispositivos Samsung
Nome do cliente | ID de cliente Samsung Knox | Fabricante | IMEI |
---|---|---|---|
Corporativa ABC | 11 |
Samsung |
|
Outros dispositivos Android
Nome do cliente | ID de cliente | Fabricante | IMEI |
---|---|---|---|
Corporativa ABC | 21 |
Google |
1234567803 |
Empresa XYZ | 22 |
Sony |
|
Etapa 2: criar o objeto ClaimDevicesRequest
Dispositivos 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();
Outros dispositivos 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();
Etapa 3: reivindicar dispositivos para clientes
Para reivindicar dispositivos para clientes, ligue para ClaimDevicesAsync
. Neste exemplo,
requer duas solicitações separadas: uma do objeto ResellerService
da Samsung.
e outra do objeto ResellerService
do Google.
// Samsung devices
ClaimDevicesResponse samsungResponse = samsungResellerService.claimDevicesAsync(claimSamsungDevicesRequest);
// Other Android devices
ClaimDevicesResponse googleResponse = googleResellerService.claimDevicesAsync(claimGoogleDevicesRequest);
Uma solicitação ClaimDevicesAsync
retorna uma lista de objetos Operation
, que
contêm o status da solicitação (em andamento, concluída, completa com erros,
ou falharam). Para verificar o status de uma operação (por exemplo, se a resposta
retornou IN_PROGRESS
), chame 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);
Cancelar a reivindicação de um lote de dispositivos
Quando você remove a reivindicação de um dispositivo, ele é desvinculado de um cliente. Talvez você é necessário cancelar a reivindicação de um dispositivo se o pedido for cancelado ou o envio de dispositivos não podem ser concluídos. Para cancelar a reivindicação de um lote de dispositivos, siga estas etapas:
Etapa 1: criar o objeto UnclaimDevicesRequest
Dispositivos 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();
Outros dispositivos 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();
Etapa 2: cancelar a reivindicação de dispositivos
Para cancelar a reivindicação de dispositivos, chame UnclaimDevicesAsync
. Este exemplo requer duas
solicitações separadas: uma do objeto ResellerService
da Samsung e outra do
o objeto ResellerService
do Google.
UnclaimDevicesResponse samsungResponse = samsungResellerService.unclaimDevicesAsync(unclaimSamsungDevicesRequest);
UnclaimDevicesResponse googleResponse = googleResellerService.unclaimDevicesAsync(unclaimGoogleDevicesRequest);
Uma solicitação UnclaimDevicesAsync
retorna uma lista de objetos Operation
, que
contêm o status da solicitação (em andamento, concluída, completa com erros,
ou falhou) Para verificar o status de uma operação (por exemplo, se a resposta
retornou IN_PROGRESS
), chame getOperation
.
Dispositivos Samsung
GetOperationRequest samsungOperationRequest = GetOperationRequest.newBuilder().setOperationId(samsungOperationId).build();
Operation samsungOperation = samsungResellerService.getOperation(samsungOperationRequest);
Outros dispositivos Android
GetOperationRequest googleOperationRequest = GetOperationRequest.newBuilder().setOperationId(googleOperationId).build();
Operation googleOperation = googleResellerService.getOperation(googleOperationRequest);
Trocar um dispositivo Samsung
Se um dispositivo precisar ser substituído por qualquer motivo, é possível trocá-lo. Isso exemplo pressupõe que você está trocando um dispositivo Samsung por outro dispositivo.
Etapa 1: criar um objeto 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();
Etapa 2: chamar UnclaimDeviceAsync
UnclaimDevicesResponse samsungResponse = samsungResellerService.unclaimDevicesAsync(unclaimSamsungDevicesRequest);
Uma solicitação UnclaimDevicesAsync
retorna uma lista de objetos Operation
, que
contém o status da solicitação (em andamento, concluída, completa com erros,
ou falharam). Para verificar o status de uma operação (por exemplo, se a resposta
retornou IN_PROGRESS
), chame getOperation
:
GetOperationRequest samsungOperationRequest = GetOperationRequest.newBuilder().setOperationId(samsungOperationId).build();
Operation samsungOperation = samsungResellerService.getOperation(samsungOperationRequest);
Etapa 3: criar um objeto 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();
Etapa 4: chamar ClaimDeviceAsync
ClaimDevicesResponse samsungResponse = samsungResellerService.claimDevicesAsync(claimSamsungDevicesRequest);
Uma solicitação ClaimDevicesAsync
retorna uma lista de objetos Operation
, que
contém o status da solicitação (em andamento, concluída, completa com erros,
ou falharam). Para verificar o status de uma operação (por exemplo, se a resposta
retornou IN_PROGRESS
), chame getOperation
:
GetOperationRequest samsungOperationRequest = GetOperationRequest.newBuilder().setOperationId(samsungOperationId).build();
Operation samsungOperation = samsungResellerService.getOperation(samsungOperationRequest);
Trocar um dispositivo Android (não Samsung)
Se um dispositivo precisar ser substituído por qualquer motivo, é possível trocá-lo. Isso exemplo presume que você está trocando um dispositivo Android (não Samsung) por outro dispositivo Android (não Samsung).
Etapa 1: criar um objeto UnclaimDeviceRequest
UnclaimDeviceRequest unclaimGoogleDeviceRequest = UnclaimDeviceRequest.newBuilder()
.setUnclaim(
DeviceUnclaim.newBuilder()
.setDeviceIdentifier(
DeviceIdentifier.newBuilder()
.setImei("1234567803")
.build())
.build())
.build();
Etapa 2: chamar UnclaimDevice
googleResponse = googleResellerService.unclaimDevice(unclaimGoogleDeviceRequest);
Etapa 3: criar um objeto 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();
Etapa 4: chamar ClaimDevice
ClaimDeviceResponse response = googleResellerService.claimDevice(claimGoogleDeviceRequest);
Se for bem-sucedida, a chamada retornará um objeto ClaimDeviceResponse
contendo o
deviceId
. Caso contrário, será gerada uma exceção comum que contém um código de erro.