Operações comuns

Esta página mostra exemplos de algumas operações comuns que podem ser realizadas Biblioteca comum do revendedor Android, incluindo:


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

1234567801

1234567802

Outros dispositivos Android

Nome do cliente ID de cliente Fabricante IMEI
Corporativa ABC 21 Google 1234567803
Empresa XYZ 22 Sony

1234567804

1234567805

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.