Opérations courantes

Cette page fournit des exemples d'opérations courantes que vous pouvez effectuer avec la bibliothèque commune des revendeurs Android:


Créer des objets ResellerService

Utilisez les classes d'usine Samsung et Google pour créer des objets ResellerService. Avec les objets ResellerService, un ensemble commun de méthodes est disponible pour enregistrer Samsung et d'autres appareils Android.

Appareils Samsung

L'exemple ci-dessous montre comment créer un objet ResellerService à l'aide de la classe SamsungResellerServiceFactory pour gérer les appareils Samsung.

Pour ce faire, vous devez intégrer le programme de déploiement Knox (KDP).

ResellerService samsungResellerService = SamsungResellerServiceFactory.createResellerService(resellerId, serviceAccountKeyFilePath, clientIdentifier);

Autres appareils Android

L'exemple ci-dessous montre comment créer un objet ResellerService à l'aide de la classe GoogleResellerServiceFactory pour gérer d'autres appareils Android (autres que Samsung). Avant cela, vous devez suivre les étapes de la section Premiers pas avec l'inscription sans contact pour obtenir votre resellerId et votre clé de compte de service.

ResellerService googleResellerService = GoogleResellerServiceFactory.createResellerService(resellerId, serviceAccountKeyFilePath);

Créer des objets Customer

Un client achetant des appareils Samsung et non Samsung a besoin de deux numéros client.

Appareils Samsung

Pour gérer les appareils Samsung, vous utilisez le numéro client Knox du client. Pour obtenir le numéro client Knox, vous devez d'abord créer un objet Customer. Pour ce faire, appelez createCustomer à l'aide d'un SamsungResellerService créé à partir de SamsungResellerServiceFactory. Exemple :

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();

Si la requête aboutit, la requête renvoie un objet CreateCustomerResponse à partir duquel vous pouvez extraire le numéro client Knox.

Autres appareils Android

Pour les autres appareils Android, le client nécessite un numéro client d'inscription sans contact. Si un client utilise déjà l'inscription sans contact avec un autre revendeur, vous utilisez son numéro client existant. Sinon, vous devez créer un objet Customer. Pour ce faire, appelez createCustomer à l'aide d'un ResellerService créé à partir de GoogleResellerServiceFactory. Voici un exemple :

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();

Si l'opération réussit, la requête renvoie un objet CreateCustomerResponse. Vous pouvez récupérer le numéro client à partir de la réponse.


Revendiquer un lot d'appareils

Revendiquer un appareil crée une association entre celui-ci et un client. Par exemple, si vous vendez un lot d'appareils à un client, vous revendiquez les appareils de ce client.

Cet exemple présente une manière de traiter un lot d'appareils comprenant des commandes d'appareils de plusieurs fabricants (Samsung et autres appareils Android) de plusieurs clients.

Étape 1: Organisez les appareils et les clients

Une liste des codes IMEI, des fabricants et des ID des clients auxquels les appareils ont été vendus est un moyen de les gérer en deux listes: les commandes d'appareils Samsung et les commandes d'appareils Android (autres que Samsung). Regroupez ensuite les appareils par client pour chaque liste. Exemple :

Appareils Samsung

Nom du client Numéro client Samsung Knox Fabricant Code IMEI
ABC corp 11 Samsung

1234567801

1234567802

Autres appareils Android

Nom du client Numéro client Fabricant Code IMEI
ABC corp 21 Google 1234567803
Corp. XYZ 22 Sony

1234567804

1234567805

Étape 2: Créez l'objet ClaimDevicesRequest

Appareils 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();

Autres appareils 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();

Étape 3: Revendiquez les appareils des clients

Pour revendiquer des appareils pour vos clients, appelez ClaimDevicesAsync. Cet exemple nécessite deux requêtes distinctes: une provenant de l'objet Samsung ResellerService et l'autre de l'objet Google ResellerService.

// Samsung devices
ClaimDevicesResponse samsungResponse = samsungResellerService.claimDevicesAsync(claimSamsungDevicesRequest);

// Other Android devices
ClaimDevicesResponse googleResponse = googleResellerService.claimDevicesAsync(claimGoogleDevicesRequest);

Une requête ClaimDevicesAsync renvoie une liste d'objets Operation, qui contiennent l'état de la requête (en cours, terminée, terminée avec des erreurs ou échouée). Pour vérifier l'état d'une opération (par exemple, si la réponse a renvoyé IN_PROGRESS), appelez 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);

Retirer un lot d'appareils

La revendication d'un appareil le dissocie du client. Vous devrez peut-être annuler la revendication d'un appareil si la commande d'un appareil est annulée ou si l'expédition d'un appareil échoue. Pour annuler la revendication d'un lot d'appareils, procédez comme suit:

Étape 1: Créez un objet UnclaimDevicesRequest

Appareils 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();

Autres appareils 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();

Étape 2: Annulez la revendication d'appareils

Pour annuler la revendication sur des appareils, appelez UnclaimDevicesAsync. Cet exemple nécessite deux requêtes distinctes: une provenant de l'objet Samsung ResellerService et l'autre de l'objet ResellerService Google.

UnclaimDevicesResponse samsungResponse = samsungResellerService.unclaimDevicesAsync(unclaimSamsungDevicesRequest);
UnclaimDevicesResponse googleResponse = googleResellerService.unclaimDevicesAsync(unclaimGoogleDevicesRequest);

Une requête UnclaimDevicesAsync renvoie une liste d'objets Operation, qui contiennent l'état de la requête (en cours, terminée, terminée avec des erreurs ou ayant échoué) pour vérifier l'état d'une opération (par exemple, si la réponse a renvoyé IN_PROGRESS), appelez getOperation.

Appareils Samsung

GetOperationRequest samsungOperationRequest = GetOperationRequest.newBuilder().setOperationId(samsungOperationId).build();
Operation samsungOperation = samsungResellerService.getOperation(samsungOperationRequest);

Autres appareils Android

GetOperationRequest googleOperationRequest = GetOperationRequest.newBuilder().setOperationId(googleOperationId).build();
Operation googleOperation = googleResellerService.getOperation(googleOperationRequest);

Échanger un appareil Samsung

Si vous devez remplacer un appareil pour une raison quelconque, vous pouvez l'échanger. Cet exemple suppose que vous échangez un appareil Samsung contre un autre appareil Samsung.

Étape 1: Créez un objet 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();

Étape 2: Appelez UnclaimDeviceAsync

UnclaimDevicesResponse samsungResponse = samsungResellerService.unclaimDevicesAsync(unclaimSamsungDevicesRequest);

Une requête UnclaimDevicesAsync renvoie une liste d'objets Operation, qui contient l'état de la requête (en cours, terminée, terminée avec des erreurs ou échouée). Pour vérifier l'état d'une opération (par exemple, si la réponse a renvoyé IN_PROGRESS), appelez getOperation :

GetOperationRequest samsungOperationRequest = GetOperationRequest.newBuilder().setOperationId(samsungOperationId).build();
Operation samsungOperation = samsungResellerService.getOperation(samsungOperationRequest);

Étape 3: Créez un objet 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();

Étape 4: Appelez ClaimDeviceAsync

ClaimDevicesResponse samsungResponse = samsungResellerService.claimDevicesAsync(claimSamsungDevicesRequest);

Une requête ClaimDevicesAsync renvoie une liste d'objets Operation, qui contient l'état de la requête (en cours, terminée, terminée avec des erreurs ou échouée). Pour vérifier l'état d'une opération (par exemple, si la réponse a renvoyé IN_PROGRESS), appelez getOperation:

GetOperationRequest samsungOperationRequest = GetOperationRequest.newBuilder().setOperationId(samsungOperationId).build();
Operation samsungOperation = samsungResellerService.getOperation(samsungOperationRequest);

Échanger un appareil Android (non Samsung)

Si vous devez remplacer un appareil pour une raison quelconque, vous pouvez l'échanger. Cet exemple suppose que vous échangez un appareil Android (non Samsung) contre un autre appareil (non Samsung).

Étape 1: Créez un objet UnclaimDeviceRequest

UnclaimDeviceRequest unclaimGoogleDeviceRequest = UnclaimDeviceRequest.newBuilder()
    .setUnclaim(
        DeviceUnclaim.newBuilder()
            .setDeviceIdentifier(
                DeviceIdentifier.newBuilder()
                    .setImei("1234567803")
                    .build())
            .build())
    .build();

Étape 2: Appelez UnclaimDevice

googleResponse = googleResellerService.unclaimDevice(unclaimGoogleDeviceRequest);

Étape 3: Créez un objet 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();

Étape 4: Appelez ClaimDevice

ClaimDeviceResponse response = googleResellerService.claimDevice(claimGoogleDeviceRequest);

Si l'opération réussit, l'appel renvoie un objet ClaimDeviceResponse contenant le deviceId. Sinon, elle génère une exception courante contenant un code d'erreur.