Esta página mostra exemplos de algumas operações comuns que você pode realizar com a biblioteca Common Android Reseller, incluindo:
- Criar objetos
ResellerService
- Crie objetos
Customer
- Como reivindicar um lote de dispositivos
- Cancelar a reivindicação de um lote de dispositivos
- 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 registrar
Samsung e outros dispositivos Android.
Dispositivos Samsung
O exemplo abaixo mostra como criar um objeto ResellerService
usando a
classe SamsungResellerServiceFactory
para gerenciar dispositivos Samsung.
Antes disso, é necessário integrar o Programa de Implantação do Knox (KDP, na sigla em inglês).
ResellerService samsungResellerService = SamsungResellerServiceFactory.createResellerService(resellerId, serviceAccountKeyFilePath, clientIdentifier);
Outros dispositivos Android
O exemplo abaixo mostra como criar um objeto ResellerService
usando a
classe GoogleResellerServiceFactory
para gerenciar outros dispositivos Android (que não sejam Samsung). Antes disso, siga as etapas em Começar a usar
o registro sem toque
para receber a chave da conta de serviço e o resellerId
.
ResellerService googleResellerService = GoogleResellerServiceFactory.createResellerService(resellerId, serviceAccountKeyFilePath);
Criar objetos Customer
Um cliente que compra dispositivos Samsung e de outras marcas precisa de dois IDs de cliente.
Dispositivos Samsung
Para gerenciar dispositivos Samsung, use o ID de cliente do Knox do cliente. Para receber o
ID do cliente do Knox, primeiro é necessário criar um objeto Customer
. Para fazer isso,
chame createCustomer
usando um SamsungResellerService
criado com o
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 é possível extrair o ID de cliente do Knox.
Outros dispositivos Android
Para outros dispositivos Android, o cliente precisa de um ID de cliente de registro
sem toque. Se um cliente já usa a inscrição sem contato com outro
revendedor, use o ID de cliente atual. Caso contrário, você precisa criar um
objeto Customer
. Para fazer isso, chame createCustomer
usando um ResellerService
criado 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
. É possível
extrair o ID do cliente da resposta.
Reivindicar um lote de dispositivos
A reivindicação de um dispositivo cria uma associação entre o dispositivo e um cliente. Por exemplo, se você vender um lote de dispositivos para um cliente, reivindique os 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 Android) de vários clientes.
Etapa 1: organizar dispositivos e clientes
Dada uma tabela de IMEIs, fabricantes e IDs dos clientes para quem os dispositivos foram vendidos, uma maneira de gerenciar pedidos é organizá-los em duas 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 do Samsung Knox | Fabricante | IMEI |
---|---|---|---|
ABC Corp | 11 |
Samsung |
|
Outros dispositivos Android
Nome do cliente | ID de cliente | Fabricante | IMEI |
---|---|---|---|
Corporativa ABC | 21 |
Google |
1234567803 |
XYZ Corp | 22 |
Sony |
|
Etapa 2: criar um 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
. Esses exemplos
requerem 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, concluída com erros
ou com falha). 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
A desistência desassocia o dispositivo de um cliente. Talvez seja necessário cancelar a reivindicação de um dispositivo se um pedido for cancelado ou se um envio de dispositivos não for concluído. 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: remover a reivindicação dos dispositivos
Para remover a reivindicação de dispositivos, chame UnclaimDevicesAsync
. Esse exemplo requer duas
solicitações separadas: uma do objeto ResellerService
da Samsung e outra do
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, concluída com erros
ou com falha). 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, você poderá fazer a troca. Neste exemplo, presumimos que você está trocando um dispositivo Samsung por outro dispositivo Samsung.
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 com falha). 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: ligar para 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, concluída com erros
ou com falha). 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, você poderá fazer a troca. Este 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: ligar para ClaimDevice
ClaimDeviceResponse response = googleResellerService.claimDevice(claimGoogleDeviceRequest);
Se bem-sucedida, a chamada vai retornar um objeto ClaimDeviceResponse
contendo o
deviceId
. Caso contrário, ele gera uma exceção comum com um código de erro.