Ortak işlemler

Bu sayfada, Ortak Android Bayi Kitaplığı ile gerçekleştirebileceğiniz bazı yaygın işlemlere örnekler verilmiştir:


ResellerService nesneleri oluşturun

ResellerService nesneleri oluşturmak için Samsung ve Google fabrika sınıflarını kullanın. ResellerService nesneleriyle, Samsung ve diğer Android cihazları kaydettirmek için yaygın olarak kullanılan bir dizi yöntem vardır.

Samsung cihazlar

Aşağıdaki örnekte, Samsung cihazları yönetmek için SamsungResellerServiceFactory sınıfını kullanarak nasıl ResellerService nesnesi oluşturulacağı açıklanmaktadır.

Bunu yapabilmek için Knox Deployment Program'a (KDP) katılmanız gerekir.

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

Diğer Android cihazlar

Aşağıdaki örnekte, (Samsung harici) diğer Android cihazları yönetmek için GoogleResellerServiceFactory sınıfını kullanarak nasıl ResellerService nesnesi oluşturulacağı açıklanmaktadır. Bunu yapmadan önce resellerId ve hizmet hesabı anahtarınızı almak için 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şturun

Samsung ve Samsung olmayan cihazları satın alan bir müşterinin iki müşteri kimliği olmalıdır.

Samsung cihazlar

Samsung cihazları yönetmek için müşterinin Knox Müşteri Kimliğini kullanırsınız. Knox Müşteri Kimliğini almak için önce bir Customer nesnesi oluşturmanız gerekir. Bunun için SamsungResellerServiceFactory üzerinden oluşturulan bir SamsungResellerService aracılığıyla createCustomer numarasını 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 istek, Knox Müşteri Kimliğini ayıklayabileceğiniz bir CreateCustomerResponse nesnesi döndürür.

Diğer Android cihazlar

Müşteri, diğer Android cihazlarda el değmeden kayıt için müşteri kimliği gerektirir. Bir müşteri zaten başka bir bayiyle el değmeden kayıt kullanıyorsa mevcut müşteri kimliğini kullanırsınız. Aksi takdirde, bir Customer nesnesi oluşturmanız gerekir. Bunun için, GoogleResellerServiceFactory ile oluşturulan bir ResellerService kullanarak createCustomer işlevini çağırı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();

İstek 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

Bir cihaz üzerinde hak talebinde bulunulduğunda, cihaz ve müşteri arasında bir ilişkilendirme oluşturulur. Örneğin, bir müşteriye bir grup cihaz satıyorsanız bu müşteri için cihazları talep edersiniz.

Bu örnekte, birden fazla üreticiden (Samsung ve diğer Android cihazlar) birden fazla müşterinin cihaz sıralamalarını içeren bir cihaz grubu işleme yöntemi gösterilmektedir.

1. Adım: Cihazları ve müşterileri düzenleyin

Cihazların satıldığı cihazların IMEI, üretici ve kimliklerinin tablosu göz önüne alındığında, siparişleri yönetmenin iki yolu vardır: Samsung cihaz siparişleri ve diğer Android (Samsung harici) cihaz siparişleri. Ardından, 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 şirketi 11 Samsung

1234567801

1234567802

Diğer Android cihazlar

Müşteri adı Müşteri Kimliği Üretici IMEI
ABC şirketi 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 cihazlar üzerinde hak talebinde bulunun

Cihazlarınızı talep etmek için ClaimDevicesAsync numaralı telefonu arayın. Bu örneklerde iki ayrı istek gereklidir: 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 içeren (devam ediyor, tamamlandı, hatalarla tamamlandı veya başarısız oldu) Operation nesnelerinin listesini döndürür. Bir işlemin durumunu kontrol etmek için (örneğin, yanıt IN_PROGRESS döndürdüyse) getOperation numaralı telefonu arayı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 talebinde bulunma

Bir cihazın hak talebinin iptal edilmesi, müşterinin müşteriyle ilişkisini kaldırır. Bir cihaz siparişi iptal edilirse veya cihaz gönderimi başarıyla tamamlanamazsa cihazın hak talebini iptal etmeniz gerekebilir. Bir cihaz grubunun talebini kaldırmak için aşağıdaki adımları uygulayın:

1. Adım: UnclaimDevicesRequest nesnesi 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 hak talebini iptal edin

Cihazların hak talebini iptal etmek için UnclaimDevicesAsync numaralı telefonu arayın. Bu örnek iki ayrı istek gerektirir: Biri Samsung ResellerService nesnesinden, diğeri Google ResellerService nesnesinden.

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

UnclaimDevicesAsync İsteği, isteğin durumunu (devam ediyor, tamamlandı, hatalarla tamamlandı veya başarısız oldu) içeren Operation nesnelerinin bir listesini döndürür. Bir işlemin durumunu kontrol etmek (örneğin, yanıt IN_PROGRESS döndürdüyse) getOperation çağrısı yapı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

Bir cihazın herhangi bir nedenle değiştirilmesi gerekiyorsa cihazı takas edebilirsiniz. Bu örnekte, bir Samsung cihazı başka bir Samsung cihazıyla değiştirdiğiniz kabul edilmektedir.

1. Adım: UnclaimDeviceRequest nesnesi oluşturma

// 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 içeren (devam ediyor, tamamlandı, hatalarla tamamlandı veya başarısız oldu) Operation nesnelerinin listesini döndürür. Bir işlemin durumunu kontrol etmek için (örneğin, yanıt IN_PROGRESS döndürdüyse) getOperation numaralı telefonu arayın:

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

3. Adım: ClaimDeviceRequest nesnesi oluşturma

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 içeren (devam ediyor, tamamlandı, hatalarla tamamlandı veya başarısız oldu) Operation nesnelerinin listesini döndürür. Bir işlemin durumunu kontrol etmek için (örneğin, yanıt IN_PROGRESS döndürdüyse) getOperation numaralı telefonu arayın:

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

Android (Samsung harici) bir cihaz değişimi

Bir cihazın herhangi bir nedenle değiştirilmesi gerekiyorsa cihazı takas edebilirsiniz. Bu örnekte, Android (Samsung harici) bir cihazı başka bir Android (Samsung harici) cihaz için değiştirdiğiniz varsayılmaktadır.

1. Adım: UnclaimDeviceRequest nesnesi oluşturma

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: ClaimDeviceRequest nesnesi oluşturma

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 içeren bir ClaimDeviceResponse nesnesi döndürür. Aksi takdirde, hata kodu içeren yaygın bir istisna oluşturur.