Ortak işlemler

Bu sayfada, Ortak Android Bayi Kitaplığı ile gerçekleştirebileceğiniz bazı genel işlemlere örnekler verilmiştir. Örneğin:


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

1234567801

1234567802

Diğer Android cihazlar

Müşteri adı Müşteri Kimliği Üretici IMEI
ABC corp 21 Google 1234567803
XYZ şirketi 22 Sony

1234567804

1234567805

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.