تقدّم هذه الصفحة أمثلة على بعض العمليات الشائعة التي يمكنك إجراؤها باستخدام مكتبة "مورّدي أجهزة Android العاديين"، بما في ذلك:
- إنشاء
ResellerService
عنصر - إنشاء
Customer
عنصر - المطالبة بمجموعة من الأجهزة
- إلغاء المطالبة بمجموعة من الأجهزة
- استبدال جهاز Samsung
- استبدال جهاز Android (غير جهاز Samsung)
إنشاء ResellerService
عنصر
يمكنك استخدام فئات Samsung وGoogle Manufacturer Center لإنشاء عناصر "ResellerService
".
باستخدام كائنات ResellerService
، تتوفّر مجموعة شائعة من الطرق لتسجيل
Samsung وأجهزة Android الأخرى.
أجهزة Samsung
يوضّح المثال أدناه كيفية إنشاء عنصر ResellerService
باستخدام فئة
SamsungResellerServiceFactory
لإدارة أجهزة Samsung.
لإجراء ذلك، عليك الانضمام إلى برنامج نشر Knox (KDP).
ResellerService samsungResellerService = SamsungResellerServiceFactory.createResellerService(resellerId, serviceAccountKeyFilePath, clientIdentifier);
أجهزة Android الأخرى
يوضِّح المثال أدناه كيفية إنشاء عنصر ResellerService
باستخدام فئة
GoogleResellerServiceFactory
لإدارة أجهزة Android
الأخرى (غير التابعة لشركة Samsung). لإجراء ذلك، عليك اتّباع الخطوات الواردة في مقالة البدء
باستخدام ميزة "إعداد الأجهزة الجوّالة للمؤسسات دفعةً واحدة"
للحصول على resellerId
ومفتاح حساب الخدمة.
ResellerService googleResellerService = GoogleResellerServiceFactory.createResellerService(resellerId, serviceAccountKeyFilePath);
إنشاء Customer
عنصر
يحتاج العميل الذي يشتري أجهزة Samsung وغير 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
. يمكنك retrieving the customer ID from the response.
طلب مجموعة من الأجهزة
يؤدي المطالبة بجهاز إلى ربط الجهاز بالعميل. على سبيل المثال، إذا كنت تبيع مجموعة من الأجهزة إلى عميل، يمكنك المطالبة بهذه الأجهزة له.
يوضّح هذا المثال طريقة لمعالجة مجموعة من الأجهزة التي تشمل طلبات أجهزة من عدة شركات مصنّعة (Samsung وغيرها من أجهزة Android) من عدة عملاء.
الخطوة 1: تنظيم الأجهزة والعملاء
استنادًا إلى جدول يحتوي على أرقام IMEI للأجهزة والمصنّعين ومعرّفات العملاء الذين تم بيع الأجهزة لهم، تتمثل إحدى طرق إدارة الطلبات في تنظيمها في قائمتَين: طلبات أجهزة Samsung وطلبات أجهزة Android الأخرى (غير التابعة لشركة Samsung). بعد ذلك، يمكنك تجميع الأجهزة حسب العميل لكل قائمة. على سبيل المثال:
أجهزة 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
. تتطلّب هذه الأمثلة
طلبَين منفصلَين: أحدهما من عنصر ResellerService
في Samsung
والآخر من عنصر ResellerService
في Google.
// 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
. يتطلّب هذا المثال طلبَين منفصلَين: أحدهما من كائن ResellerService
Samsung والآخر عن كائن ResellerService
Google.
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
. وبخلاف ذلك، يتم طرح استثناء شائع يحتوي على رمز خطأ.