In questa pagina vengono forniti alcuni esempi di alcune operazioni comuni che puoi eseguire con la libreria comune di rivenditori Android, tra cui:
- Crea
ResellerService
oggetti - Crea
Customer
oggetti - Rivendicare un gruppo di dispositivi
- Annullare la rivendicazione di un gruppo di dispositivi
- Scambio un dispositivo Samsung
- Scambio un dispositivo Android (non Samsung)
Crea oggetti ResellerService
Utilizza le classi di fabbrica Samsung e Google per creare oggetti ResellerService
.
Con gli oggetti ResellerService
è disponibile un insieme comune di metodi per registrare
Samsung e altri dispositivi Android.
Dispositivi Samsung
L'esempio seguente mostra come creare un oggetto ResellerService
utilizzando la classe SamsungResellerServiceFactory
per gestire i dispositivi Samsung.
Per farlo, devi prima eseguire l'onboarding del Knox Deployment Program (KDP).
ResellerService samsungResellerService = SamsungResellerServiceFactory.createResellerService(resellerId, serviceAccountKeyFilePath, clientIdentifier);
Altri dispositivi Android
L'esempio seguente mostra come creare un oggetto ResellerService
utilizzando la classe GoogleResellerServiceFactory
per gestire altri dispositivi Android (non Samsung). Prima di poterlo fare, segui i passaggi descritti nella Guida introduttiva alla registrazione zero-touch per ottenere la chiave resellerId
e la chiave dell'account di servizio.
ResellerService googleResellerService = GoogleResellerServiceFactory.createResellerService(resellerId, serviceAccountKeyFilePath);
Crea oggetti Customer
Un cliente che acquista dispositivi Samsung e non Samsung richiede due ID cliente.
Dispositivi Samsung
Per gestire i dispositivi Samsung, devi utilizzare l'ID cliente Knox del cliente. Per ottenere l'ID cliente Knox, devi prima creare un oggetto Customer
. Per farlo,
chiama createCustomer
utilizzando un SamsungResellerService
creato da
SamsungResellerServiceFactory
. Esempio:
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();
In caso di esito positivo, la richiesta restituisce un oggetto CreateCustomerResponse
da cui puoi estrarre l'ID cliente Knox.
Altri dispositivi Android
Per altri dispositivi Android, il cliente richiede un ID cliente di registrazione zero-touch. Se un cliente utilizza già la registrazione zero-touch con un altro rivenditore, devi utilizzare il suo ID cliente esistente. In caso contrario, devi creare un oggetto Customer
. Per farlo, chiama createCustomer
utilizzando un ResellerService
creato da GoogleResellerServiceFactory
. Ecco un esempio:
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 l'operazione riesce, la richiesta restituisce un oggetto CreateCustomerResponse
. Puoi recuperare l'ID cliente dalla risposta.
Rivendicare un gruppo di dispositivi
La rivendicazione di un dispositivo crea un'associazione tra il dispositivo e un cliente. Ad esempio, se vendi un gruppo di dispositivi a un cliente, rivendichi i dispositivi per quel cliente.
Questo esempio mostra un modo per elaborare un gruppo di dispositivi che include ordini di dispositivi di più produttori (Samsung e altri dispositivi Android) di più clienti.
Passaggio 1: organizza i dispositivi e i clienti
Data una tabella di IMEI, produttori e ID dei clienti a cui i dispositivi sono stati venduti, un modo per gestire gli ordini è organizzarli in due elenchi: ordini di dispositivi Samsung e altri ordini di dispositivi Android (non Samsung). Per ogni elenco, raggruppa quindi i dispositivi in base al cliente. Ad esempio:
Dispositivi Samsung
Nome del cliente | ID cliente Samsung Knox | Produttore | IMEI |
---|---|---|---|
Corpi ABC | 11 |
Samsung |
|
Altri dispositivi Android
Nome del cliente | ID cliente | Produttore | IMEI |
---|---|---|---|
Corpi ABC | 21 |
Google |
1234567803 |
Corp. XYZ | 22 |
Sony |
|
Passaggio 2: crea un oggetto ClaimDevicesRequest
Dispositivi 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();
Altri dispositivi 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();
Passaggio 3: rivendica i dispositivi per i clienti
Per rivendicare i dispositivi per i clienti, chiama ClaimDevicesAsync
. Questo esempio richiede due richieste separate: una dall'oggetto ResellerService
Samsung e una dall'oggetto Google ResellerService
.
// Samsung devices
ClaimDevicesResponse samsungResponse = samsungResellerService.claimDevicesAsync(claimSamsungDevicesRequest);
// Other Android devices
ClaimDevicesResponse googleResponse = googleResellerService.claimDevicesAsync(claimGoogleDevicesRequest);
Una richiesta ClaimDevicesAsync
restituisce un elenco di oggetti Operation
contenenti lo stato della richiesta (in corso, completata, completata con errori o non riuscita). Per controllare lo stato di un'operazione (ad esempio, se la risposta ha restituito IN_PROGRESS
), chiama 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);
Annullare la rivendicazione di un gruppo di dispositivi
Se annulli la rivendicazione di un dispositivo, l'associazione viene annullata. Potresti dover annullare la rivendicazione di un dispositivo se l'ordine di un dispositivo viene annullato o non è possibile completare una spedizione. Per annullare la rivendicazione di un gruppo di dispositivi:
Passaggio 1: crea un oggetto UnclaimDevicesRequest
Dispositivi 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();
Altri dispositivi 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();
Passaggio 2: annulla la rivendicazione dei dispositivi
Per annullare la rivendicazione dei dispositivi, chiama UnclaimDevicesAsync
. Questo esempio richiede due richieste separate, una dall'oggetto ResellerService
Samsung e una dall'oggetto Google ResellerService
.
UnclaimDevicesResponse samsungResponse = samsungResellerService.unclaimDevicesAsync(unclaimSamsungDevicesRequest);
UnclaimDevicesResponse googleResponse = googleResellerService.unclaimDevicesAsync(unclaimGoogleDevicesRequest);
Una richiesta UnclaimDevicesAsync
restituisce un elenco di oggetti Operation
contenenti lo stato della richiesta (in corso, completata, completata con errori o non riuscita) per controllare lo stato di un'operazione (ad esempio, se la risposta ha restituito IN_PROGRESS
), chiama getOperation
.
Dispositivi Samsung
GetOperationRequest samsungOperationRequest = GetOperationRequest.newBuilder().setOperationId(samsungOperationId).build();
Operation samsungOperation = samsungResellerService.getOperation(samsungOperationRequest);
Altri dispositivi Android
GetOperationRequest googleOperationRequest = GetOperationRequest.newBuilder().setOperationId(googleOperationId).build();
Operation googleOperation = googleResellerService.getOperation(googleOperationRequest);
Cambiare un dispositivo Samsung
Se per qualsiasi motivo un dispositivo deve essere sostituito, puoi scambiarlo. Questo esempio presuppone che tu stia scambiando un dispositivo Samsung con un altro dispositivo Samsung.
Passaggio 1: crea un oggetto 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();
Passaggio 2: chiama il numero UnclaimDeviceAsync
UnclaimDevicesResponse samsungResponse = samsungResellerService.unclaimDevicesAsync(unclaimSamsungDevicesRequest);
Una richiesta UnclaimDevicesAsync
restituisce un elenco di oggetti Operation
, che contengono lo stato della richiesta (in corso, completata, completata con errori o non riuscita). Per controllare lo stato di un'operazione (ad esempio, se la risposta ha restituito IN_PROGRESS
), chiama getOperation
:
GetOperationRequest samsungOperationRequest = GetOperationRequest.newBuilder().setOperationId(samsungOperationId).build();
Operation samsungOperation = samsungResellerService.getOperation(samsungOperationRequest);
Passaggio 3: crea un oggetto 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();
Passaggio 4: chiama il numero ClaimDeviceAsync
ClaimDevicesResponse samsungResponse = samsungResellerService.claimDevicesAsync(claimSamsungDevicesRequest);
Una richiesta ClaimDevicesAsync
restituisce un elenco di oggetti Operation
, che contengono lo stato della richiesta (in corso, completata, completata con errori o non riuscita). Per controllare lo stato di un'operazione (ad esempio, se la risposta ha restituito IN_PROGRESS
), chiama getOperation
:
GetOperationRequest samsungOperationRequest = GetOperationRequest.newBuilder().setOperationId(samsungOperationId).build();
Operation samsungOperation = samsungResellerService.getOperation(samsungOperationRequest);
Cambiare un dispositivo Android (non Samsung)
Se per qualsiasi motivo un dispositivo deve essere sostituito, puoi scambiarlo. Questo esempio presuppone che tu stia scambiando un dispositivo Android (non Samsung) con un altro dispositivo Android (non Samsung).
Passaggio 1: crea un oggetto UnclaimDeviceRequest
UnclaimDeviceRequest unclaimGoogleDeviceRequest = UnclaimDeviceRequest.newBuilder()
.setUnclaim(
DeviceUnclaim.newBuilder()
.setDeviceIdentifier(
DeviceIdentifier.newBuilder()
.setImei("1234567803")
.build())
.build())
.build();
Passaggio 2: chiama il numero UnclaimDevice
googleResponse = googleResellerService.unclaimDevice(unclaimGoogleDeviceRequest);
Passaggio 3: crea un oggetto 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();
Passaggio 4: chiama il numero ClaimDevice
ClaimDeviceResponse response = googleResellerService.claimDevice(claimGoogleDeviceRequest);
Se l'operazione ha esito positivo, la chiamata restituisce un oggetto ClaimDeviceResponse
contenente deviceId
. In caso contrario, genera un'eccezione comune contenente un codice di errore.