Bu sayfada, Ortak Android Bayi Kitaplığı ile gerçekleştirebileceğiniz bazı genel işlemlere örnekler verilmiştir. Örneğin:
ResellerServicenesneleri oluşturmaCustomernesneleri oluşturma- Bir cihaz grubu için hak talebinde bulunma
- Bir grup cihazın sahipliğini iptal etme
- Samsung cihaz değişimi
- Android (Samsung olmayan) cihaz değişimi
ResellerService nesne oluşturun
ResellerService nesneleri oluşturmak için Samsung ve Google fabrika sınıflarını kullanın.
ResellerService nesneleri, Samsung ve diğer Android cihazları kaydettirmek için ortak bir yöntem grubu sağlar.
Samsung cihazlar
Aşağıdaki örnekte, Samsung cihazları yönetmek için SamsungResellerServiceFactory sınıfı kullanılarak bir ResellerService nesnesinin nasıl oluşturulacağı gösterilmektedir.
Bunu yapabilmek için Knox Dağıtım Programı'na (KDP) kaydolmanız gerekir.
ResellerService samsungResellerService = SamsungResellerServiceFactory.createResellerService(resellerId, serviceAccountKeyFilePath, clientIdentifier);
Diğer Android cihazlar
Aşağıdaki örnekte, diğer (Samsung olmayan) Android cihazları yönetmek için GoogleResellerServiceFactory sınıfı kullanılarak nasıl ResellerService nesnesi oluşturulacağı gösterilmektedir. Bunu yapabilmek için resellerId ve hizmet hesabı anahtarınızı almak üzere El değmeden kayıt için başlangıç bölümündeki adımları uygulamanız gerekir.
ResellerService googleResellerService = GoogleResellerServiceFactory.createResellerService(resellerId, serviceAccountKeyFilePath);
Customer nesneleri oluşturma
Samsung ve Samsung olmayan cihaz satın alan bir müşterinin iki müşteri kimliği olması gerekir.
Samsung cihazlar
Samsung cihazları yönetmek için müşterinin Knox müşteri kimliğini kullanırsınız. Knox Müşteri Kimliği'ni almak için önce bir Customer nesnesi oluşturmanız gerekir. Bunun için, SamsungResellerServiceFactory'den oluşturulan bir SamsungResellerService kullanarak createCustomer'ü arayın. Aşağıda bununla ilgili bir örnek verilmiştir:
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();
İstek başarılı olursa Knox müşteri kimliğini alabileceğiniz bir CreateCustomerResponse nesnesi döndürür.
Diğer Android cihazlar
Diğer Android cihazlar için müşterinin el değmeden kayıt müşteri kimliği gerekir. Bir müşteri zaten başka bir bayide el değmeden kayıt özelliğini kullanıyorsa müşterinin mevcut müşteri kimliğini kullanırsınız. Aksi takdirde, bir Customer nesnesi oluşturmanız gerekir. Bunu yapmak için GoogleResellerServiceFactory'den oluşturulan bir ResellerService kullanarak createCustomer'ü arayın. Örnek:
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();
Başarılı olursa istek bir CreateCustomerResponse nesnesi döndürür. Yanıttan müşteri kimliğini alabilirsiniz.
Bir cihaz grubu için hak talebinde bulunma
Cihaz için hak talebinde bulunmak, cihaz ile müşteri arasında bir ilişkilendirme oluşturur. Örneğin, bir müşteriye bir grup cihaz satarsanız söz konusu müşteri için cihazları talep edersiniz.
Bu örnekte, birden fazla müşteriden gelen birden fazla üreticinin (Samsung ve diğer Android cihazlar) cihaz siparişlerini içeren bir cihaz grubunu işleme yöntemlerinden biri gösterilmektedir.
1. adım: Cihazları ve müşterileri düzenleyin
Cihaz IMEI'leri, üreticileri ve cihazların satıldığı müşterilerin kimliklerinin yer aldığı bir tablo varsa siparişleri yönetmenin bir yolu, bunları iki listeye ayırmaktır: Samsung cihaz siparişleri ve diğer Android (Samsung harici) cihaz siparişleri. Daha sonra, her liste için cihazları müşteriye göre gruplandırın. Örneğin:
Samsung cihazlar
| Müşteri adı | Samsung Knox müşteri kimliği | Üretici | IMEI |
|---|---|---|---|
| ABC corp | 11 |
Samsung |
|
Diğer Android cihazlar
| Müşteri adı | Müşteri Kimliği | Üretici | IMEI |
|---|---|---|---|
| ABC corp | 21 |
Google |
1234567803 |
| XYZ şirketi | 22 |
Sony |
|
2. adım: ClaimDevicesRequest nesnesi oluşturun
Samsung cihazlar
// 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();
Diğer Android cihazlar
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();
3. adım: Müşteriler için cihaz talep edin
Müşteriler için cihaz talep etmek istiyorsanız ClaimDevicesAsync numaralı telefonu arayın. Bu örnek için iki ayrı istek gerekir: biri Samsung ResellerService nesnesinden, diğeri Google ResellerService nesnesinden.
// Samsung devices
ClaimDevicesResponse samsungResponse = samsungResellerService.claimDevicesAsync(claimSamsungDevicesRequest);
// Other Android devices
ClaimDevicesResponse googleResponse = googleResellerService.claimDevicesAsync(claimGoogleDevicesRequest);
ClaimDevicesAsync isteği, isteğin durumunu (devam ediyor, tamamlandı, hatalarla tamamlandı veya başarısız) içeren Operation nesne listesini döndürür. Bir işlemin durumunu kontrol etmek için (örneğin, yanıt IN_PROGRESS döndürüldüyse) getOperation işlevini çağırın.
// 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);
Bir cihaz grubu için hak talebini iptal etme
Cihazın sahipliğini iptal ettiğinizde cihazın müşteriyle ilişkisi kaldırılır. Cihaz siparişi iptal edilirse veya cihazların gönderimi başarıyla tamamlanamazsa cihaz için hak talebini iptal etmeniz gerekebilir. Bir cihaz grubu için hak talebini iptal etmek istiyorsanız şu adımları uygulayın:
1. Adım: UnclaimDevicesRequest nesnesini oluşturun
Samsung cihazlar
// 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();
Diğer Android cihazlar
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();
2. Adım: Cihazların sahipliğini iptal edin
Cihazlar üzerinde hak talebini iptal etmek için UnclaimDevicesAsync numaralı telefonu arayın. Bu örnekte, biri Samsung ResellerService nesnesinden, diğeri de Google ResellerService nesnesinden olmak üzere iki ayrı istek gerekmektedir.
UnclaimDevicesResponse samsungResponse = samsungResellerService.unclaimDevicesAsync(unclaimSamsungDevicesRequest);
UnclaimDevicesResponse googleResponse = googleResellerService.unclaimDevicesAsync(unclaimGoogleDevicesRequest);
UnclaimDevicesAsync isteği, isteğin durumunu (devam ediyor, tamamlandı, hatalarla tamamlandı veya başarısız oldu) içeren bir Operation nesnesi listesi döndürür. Bir işlemin durumunu kontrol etmek için (örneğin, yanıt IN_PROGRESS döndürüldüyse) getOperation işlevini çağırın.
Samsung cihazlar
GetOperationRequest samsungOperationRequest = GetOperationRequest.newBuilder().setOperationId(samsungOperationId).build();
Operation samsungOperation = samsungResellerService.getOperation(samsungOperationRequest);
Diğer Android cihazlar
GetOperationRequest googleOperationRequest = GetOperationRequest.newBuilder().setOperationId(googleOperationId).build();
Operation googleOperation = googleResellerService.getOperation(googleOperationRequest);
Samsung cihaz değişimi
Herhangi bir nedenle değiştirilmesi gereken cihazı değiştirebilirsiniz. Bu örnekte, bir Samsung cihazı başka bir Samsung cihazla değiştirdiğiniz varsayılmaktadır.
1. adım: UnclaimDeviceRequest nesnesi oluşturun
// 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();
2. adım: UnclaimDeviceAsync numaralı telefonu arayın
UnclaimDevicesResponse samsungResponse = samsungResellerService.unclaimDevicesAsync(unclaimSamsungDevicesRequest);
UnclaimDevicesAsync isteği, isteğin durumunu (devam ediyor, tamamlandı, hatalarla tamamlandı veya başarısız) içeren bir Operation nesnesi listesi döndürür. Bir işlemin durumunu kontrol etmek için (örneğin, yanıt IN_PROGRESS döndürdüyse) getOperation çağrısı yapın:
GetOperationRequest samsungOperationRequest = GetOperationRequest.newBuilder().setOperationId(samsungOperationId).build();
Operation samsungOperation = samsungResellerService.getOperation(samsungOperationRequest);
3. Adım: ClaimDeviceRequest nesnesi oluşturun
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();
4. adım: ClaimDeviceAsync numaralı telefonu arayın
ClaimDevicesResponse samsungResponse = samsungResellerService.claimDevicesAsync(claimSamsungDevicesRequest);
ClaimDevicesAsync isteği, isteğin durumunu (devam ediyor, tamamlandı, hatalarla tamamlandı veya başarısız) içeren bir Operation nesnesi listesi döndürür. Bir işlemin durumunu kontrol etmek için (örneğin, yanıt IN_PROGRESS döndürdüyse) getOperation çağrısı yapın:
GetOperationRequest samsungOperationRequest = GetOperationRequest.newBuilder().setOperationId(samsungOperationId).build();
Operation samsungOperation = samsungResellerService.getOperation(samsungOperationRequest);
Android (Samsung harici) cihaz değişimi
Bir cihazın herhangi bir nedenle değiştirilmesi gerekiyorsa cihazı takas edebilirsiniz. Bu örnekte, bir Android (Samsung olmayan) cihazı başka bir Android (Samsung olmayan) cihazla değiştirdiğiniz varsayılmaktadır.
1. Adım: UnclaimDeviceRequest nesnesi oluşturun
UnclaimDeviceRequest unclaimGoogleDeviceRequest = UnclaimDeviceRequest.newBuilder()
.setUnclaim(
DeviceUnclaim.newBuilder()
.setDeviceIdentifier(
DeviceIdentifier.newBuilder()
.setImei("1234567803")
.build())
.build())
.build();
2. adım: UnclaimDevice numaralı telefonu arayın
googleResponse = googleResellerService.unclaimDevice(unclaimGoogleDeviceRequest);
3. Adım: Bir ClaimDeviceRequest nesnesi oluşturun
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();
4. adım: ClaimDevice numaralı telefonu arayın
ClaimDeviceResponse response = googleResellerService.claimDevice(claimGoogleDeviceRequest);
Başarılı olursa çağrı, deviceId öğesini içeren bir ClaimDeviceResponse nesnesi döndürür. Aksi takdirde, hata kodu içeren yaygın bir istisna atar.