تقدم هذه الصفحة أمثلة لبعض العمليات الشائعة التي قد تجريها في "مكتبة مورِّد Android المشتركة"، بما في ذلك:
- إنشاء
ResellerService
عناصر - إنشاء
Customer
عناصر - المطالبة بمجموعة من الأجهزة
- إلغاء المطالبة بمجموعة من الأجهزة
- استبدال جهاز Samsung
- استبدال جهاز يعمل بنظام التشغيل Android (غير تابع لشركة Samsung)
إنشاء كائنات ResellerService
يمكنك استخدام فئتيّ المصنع من Samsung وGoogle لإنشاء كائنات ResellerService
.
باستخدام كائنات ResellerService
، تتوفّر مجموعة من الطرق الشائعة لتسجيل أجهزة Samsung وغيرها من أجهزة Android.
أجهزة Samsung
يوضّح المثال أدناه كيفية إنشاء كائن ResellerService
باستخدام الصف SamsungResellerServiceFactory
لإدارة أجهزة Samsung.
وحتى تتمكّن من تنفيذ ذلك، عليك الاشتراك مع Knox Deployment Program (KDP).
ResellerService samsungResellerService = SamsungResellerServiceFactory.createResellerService(resellerId, serviceAccountKeyFilePath, clientIdentifier);
الأجهزة الأخرى التي تعمل بنظام التشغيل Android
يوضّح المثال أدناه كيفية إنشاء كائن ResellerService
باستخدام الصف GoogleResellerServiceFactory
لإدارة أجهزة Android الأخرى (بخلاف Samsung). قبل اتّخاذ هذا الإجراء، عليك اتّباع الخطوات الواردة في بدء استخدام برنامج "إعداد الأجهزة الجوّالة للمؤسّسات دفعةً واحدة" للحصول على resellerId
ومفتاح حساب الخدمة.
ResellerService googleResellerService = GoogleResellerServiceFactory.createResellerService(resellerId, serviceAccountKeyFilePath);
إنشاء كائنات Customer
ويتطلب العميل الذي يشتري أجهزة Samsung وغيرها من الأجهزة رقمَين تعريفيَين للعميل.
أجهزة Samsung
لإدارة أجهزة Samsung، يمكنك استخدام الرقم التعريفي لعميل Knox للعميل. للحصول على
الرقم التعريفي لعميل Knox، يجب أولاً إنشاء كائن Customer
. لإجراء ذلك، اتصل برقم createCustomer
باستخدام SamsungResellerService
التي تم إنشاؤها من SamsungResellerServiceFactory
. وفي ما يلي مثال لذلك:
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();
في حالة نجاح هذا الطلب، يتم إرجاع كائن CreateCustomerResponse
يمكنك من خلاله استخراج الرقم التعريفي لعميل Knox.
الأجهزة الأخرى التي تعمل بنظام التشغيل Android
أما بالنسبة إلى الأجهزة الأخرى التي تعمل بنظام التشغيل Android، فإن العميل يحتاج إلى رقم تعريفي لعميل "إعداد الأجهزة الجوّالة للمؤسّسات دفعةً واحدة". إذا كان العميل يستخدم "إعداد الأجهزة الجوّالة للمؤسّسات دفعةً واحدة" مع مورِّد آخر، يمكنك استخدام الرقم التعريفي الحالي للعميل. وبخلاف ذلك، عليك إنشاء
كائن Customer
. لإجراء ذلك، يمكنك الاتصال بـ createCustomer
باستخدام ResellerService
من GoogleResellerServiceFactory
. وفي ما يلي مثال على ذلك:
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();
وفي حال نجاح هذا الإجراء، يعرض الطلب كائن CreateCustomerResponse
. يمكنك استرداد الرقم التعريفي للعميل من الرد.
المطالبة بمجموعة من الأجهزة
تؤدي المطالبة بجهاز إلى إنشاء رابط بين الجهاز والعميل. على سبيل المثال، إذا كنت تبيع مجموعة من الأجهزة لعميل ما، فسيطلب منك الحصول على الأجهزة التي يستخدمها هذا العميل.
يعرض هذا المثال طريقة واحدة لمعالجة مجموعة من الأجهزة التي تتضمن طلبات أجهزة من عدة شركات مصنّعة (Samsung وغيرها من أجهزة Android) من عدة عملاء.
الخطوة 1: تنظيم الأجهزة والعملاء
بالنظر إلى جدول يضمّ أرقام IMEI للأجهزة والشركات المصنّعة وأرقام تعريف العملاء الذين تم بيع الأجهزة لهم، تتمثّل إحدى طرق إدارة الطلبات في تنظيم هذه القوائم في قائمتَين: طلبات أجهزة Samsung وطلبات أجهزة أخرى (غير تابعة لشركة Samsung) تعمل بنظام التشغيل Android. وبعد ذلك، يمكنك تجميع الأجهزة بحسب العميل لكل قائمة. مثلاً:
أجهزة Samsung
اسم العميل | الرقم التعريفي لعميل Samsung Knox | الشركة المصنِّعة | IMEI |
---|---|---|---|
شركة ABC | 11 |
Samsung |
|
الأجهزة الأخرى التي تعمل بنظام التشغيل Android
اسم العميل | الرقم التعريفي للعميل | الشركة المصنِّعة | IMEI |
---|---|---|---|
شركة ABC | 21 |
Google |
1234567803 |
شركة XYZ | 22 |
Sony |
|
الخطوة 2: إنشاء كائن ClaimDevicesRequest
أجهزة 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();
الأجهزة الأخرى التي تعمل بنظام التشغيل 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();
الخطوة 3: المطالبة بالأجهزة للعملاء
للمطالبة بأجهزة خاصة بالعملاء، يُرجى الاتصال بالرقم ClaimDevicesAsync
. يتطلب هذا المثال
طلبين منفصلين: أحدهما من كائن Samsung ResellerService
وواحد من كائن Google ResellerService
.
// Samsung devices
ClaimDevicesResponse samsungResponse = samsungResellerService.claimDevicesAsync(claimSamsungDevicesRequest);
// Other Android devices
ClaimDevicesResponse googleResponse = googleResellerService.claimDevicesAsync(claimGoogleDevicesRequest);
يعرض طلب ClaimDevicesAsync
قائمة بـ Operation
من العناصر التي تحتوي على حالة الطلب (قيد التقدم، أو اكتمال، أو مع وجود أخطاء، أو تعذّر تنفيذه). للتحقق من حالة العملية (على سبيل المثال، إذا عرضت الاستجابة IN_PROGRESS
)، اتصل على 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);
إلغاء المطالبة بمجموعة من الأجهزة
تؤدي إزالة المطالبة بجهاز إلى إلغاء ربطه بأحد العملاء. قد تحتاج إلى إلغاء المطالبة بالجهاز في حال إلغاء طلب الجهاز أو تعذُّر اكتمال شحن الأجهزة. لإلغاء المطالبة بمجموعة من الأجهزة، اتبع الخطوات التالية:
الخطوة 1: إنشاء كائن UnclaimDevicesRequest
أجهزة 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();
الأجهزة الأخرى التي تعمل بنظام التشغيل 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();
الخطوة 2: إلغاء المطالبة بالأجهزة
لإلغاء المطالبة بأجهزة، اتصل برقم UnclaimDevicesAsync
. يتطلب هذا المثال طلبين منفصلين: أحدهما من كائن Samsung ResellerService
والآخر من كائن Google ResellerService
.
UnclaimDevicesResponse samsungResponse = samsungResellerService.unclaimDevicesAsync(unclaimSamsungDevicesRequest);
UnclaimDevicesResponse googleResponse = googleResellerService.unclaimDevicesAsync(unclaimGoogleDevicesRequest);
يعرض طلب UnclaimDevicesAsync
قائمة بـ Operation
من العناصر التي تحتوي على حالة الطلب (قيد التقدم، أو مكتملة، أو مع وجود أخطاء، أو أخفقت). للتحقق من حالة العملية (على سبيل المثال، إذا عرض الرد الاستجابة IN_PROGRESS
)، فاتصل بـ getOperation
.
أجهزة Samsung
GetOperationRequest samsungOperationRequest = GetOperationRequest.newBuilder().setOperationId(samsungOperationId).build();
Operation samsungOperation = samsungResellerService.getOperation(samsungOperationRequest);
الأجهزة الأخرى التي تعمل بنظام التشغيل Android
GetOperationRequest googleOperationRequest = GetOperationRequest.newBuilder().setOperationId(googleOperationId).build();
Operation googleOperation = googleResellerService.getOperation(googleOperationRequest);
استبدال جهاز Samsung
في حال كان هناك حاجة إلى استبدال الجهاز لأي سبب، يمكنك استبداله. يفترض هذا المثال أنك تستبدل جهاز Samsung بجهاز Samsung آخر.
الخطوة 1: إنشاء كائن 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();
الخطوة 2: الاتصال بـ UnclaimDeviceAsync
UnclaimDevicesResponse samsungResponse = samsungResellerService.unclaimDevicesAsync(unclaimSamsungDevicesRequest);
يعرض الطلب UnclaimDevicesAsync
قائمة تتضمّن Operation
عناصر، والتي
تتضمّن حالة الطلب (قيد التقدم، أو مكتملة، أو تتضمن أخطاء، أو تعذّر تنفيذها). للتحقق من حالة العملية (على سبيل المثال، إذا عرضت الاستجابة IN_PROGRESS
)، اتصل بالرقم getOperation
:
GetOperationRequest samsungOperationRequest = GetOperationRequest.newBuilder().setOperationId(samsungOperationId).build();
Operation samsungOperation = samsungResellerService.getOperation(samsungOperationRequest);
الخطوة 3: إنشاء كائن 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();
الخطوة 4: الاتصال بـ ClaimDeviceAsync
ClaimDevicesResponse samsungResponse = samsungResellerService.claimDevicesAsync(claimSamsungDevicesRequest);
يعرض الطلب ClaimDevicesAsync
قائمة تتضمّن Operation
عناصر، والتي
تتضمّن حالة الطلب (قيد التقدم أو مكتملة أو تتضمّن أخطاء أو تعذّر تنفيذها). للتحقق من حالة العملية (على سبيل المثال، إذا عرضت الاستجابة IN_PROGRESS
)، اتصل بالرقم getOperation
:
GetOperationRequest samsungOperationRequest = GetOperationRequest.newBuilder().setOperationId(samsungOperationId).build();
Operation samsungOperation = samsungResellerService.getOperation(samsungOperationRequest);
استبدال جهاز Android (بخلاف Samsung)
في حال كان هناك حاجة إلى استبدال الجهاز لأي سبب، يمكنك استبداله. يفترض هذا المثال أنك تستبدل جهازًا يعمل بنظام التشغيل Android (بخلاف Samsung) بجهاز يعمل بنظام التشغيل Android (غير تابع لشركة Samsung).
الخطوة 1: إنشاء كائن UnclaimDeviceRequest
UnclaimDeviceRequest unclaimGoogleDeviceRequest = UnclaimDeviceRequest.newBuilder()
.setUnclaim(
DeviceUnclaim.newBuilder()
.setDeviceIdentifier(
DeviceIdentifier.newBuilder()
.setImei("1234567803")
.build())
.build())
.build();
الخطوة 2: الاتصال بـ UnclaimDevice
googleResponse = googleResellerService.unclaimDevice(unclaimGoogleDeviceRequest);
الخطوة 3: إنشاء كائن 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();
الخطوة 4: الاتصال بـ ClaimDevice
ClaimDeviceResponse response = googleResellerService.claimDevice(claimGoogleDeviceRequest);
إذا نجحت العملية، سيتم عرض كائن ClaimDeviceResponse
يحتوي على
deviceId
. وإلا، فإنها تعرض استثناءً شائعًا يحتوي على رمز خطأ.