Esta página fornece exemplos de algumas operações comuns que podem ser realizadas com a biblioteca comum de revendedor do Android, incluindo as seguintes:
- 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 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 de fazer isso, você precisa integrar ao Programa de implantação do Knox (KDP).
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 da Samsung. Antes de fazer isso, siga as etapas em Primeiros passos
para o registro sem toque
para receber o resellerId
e a chave de conta de serviço.
ResellerService googleResellerService = GoogleResellerServiceFactory.createResellerService(resellerId, serviceAccountKeyFilePath);
Criar objetos Customer
Um cliente que compra dispositivos Samsung e outros dispositivos exige dois IDs de cliente.
Dispositivos Samsung
Para gerenciar dispositivos Samsung, use o ID de cliente Knox do cliente. Para conseguir o
ID de cliente Knox, primeiro você precisa criar um objeto Customer
. Para fazer isso,
chame 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
, de onde é possível extrair o ID de cliente do Knox.
Outros dispositivos Android
Para outros dispositivos Android, o cliente exige um ID de registro sem toque. Se um cliente já usar o registro sem toque com outro
revendedor, você usará o ID de cliente atual dele. Caso contrário, você precisará criar um
objeto Customer
. Para fazer isso, chame createCustomer
usando um ResellerService
criado no 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
recuperar o ID do cliente na resposta.
Reivindicar um lote de dispositivos
A reivindicação de um dispositivo cria uma associação entre ele e o cliente. Por exemplo, se você vende um lote de dispositivos para um cliente, precisa reivindicar os dispositivos desse cliente.
Este exemplo mostra uma maneira de processar um lote de dispositivos que inclui pedidos de vários fabricantes (Samsung e outros dispositivos Android) de vários clientes.
Etapa 1: organizar dispositivos e clientes
Considerando uma tabela de IMEIs, fabricantes e IDs de dispositivos dos clientes para os quais os dispositivos foram vendidos, uma maneira de gerenciar pedidos é organizar os pedidos em duas listas: pedidos de dispositivos Samsung e outros pedidos por dispositivos Android (que não sejam da Samsung). Em seguida, para cada lista, agrupe os dispositivos por cliente. Exemplo:
Dispositivos Samsung
Nome do cliente | ID de cliente Samsung Knox | Fabricante | IMEI |
---|---|---|---|
Empresa ABC | 11 |
Samsung |
|
Outros dispositivos Android
Nome do cliente | ID de cliente | Fabricante | IMEI |
---|---|---|---|
Empresa 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 os clientes
Se quiser reivindicar dispositivos para clientes, ligue para ClaimDevicesAsync
. Esse 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, com erros
ou com falha). Para verificar o status de uma operação (por exemplo, se a resposta
retornau 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
Se um dispositivo não for reivindicado, ele será desassociado de um cliente. Talvez seja necessário cancelar a reivindicação de um dispositivo se o pedido dele for cancelado ou se a entrega de dispositivos não for concluída. 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
. 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, com erros
ou com falha). Para verificar o status de uma operação (por exemplo, se a resposta
retornar 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, a troca poderá ser feita. Este exemplo presume que você está trocando um dispositivo Samsung por outro 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, com erros
ou com falha). Para verificar o status de uma operação (por exemplo, se a resposta
retornar 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, com erros
ou com falha). Para verificar o status de uma operação (por exemplo, se a resposta
retornar 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, a troca poderá ser feita. 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: 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 contendo um código de erro.