إرسال ملاحظات التطبيق إلى مجموعات "إدارة الخدمات الجوّالة للمؤسسات"

يقدِّم موفّرو "إدارة الخدمات الجوّالة للمؤسسات" (EMM) حلولاً للمؤسسات لإدارة أجهزة Android والتطبيقات المثبّتة عليها. تتوفّر هذه الحلول عادةً كوحدات تحكُّم على الويب يُطلق عليها اسم وحدات تحكُّم إدارة الخدمات الجوّالة للمؤسسات. ويؤدي مشرفو تكنولوجيا المعلومات باستخدام وحدة تحكُّم إدارة الخدمات الجوّالة للمؤسسات (EMM) مهام إدارة الأجهزة والتطبيقات بالنيابة عن مؤسستهم.

يمكن للتطبيقات التي تستهدف المؤسسات التعليمية إرسال ملاحظات إلى مقدّمي خدمات إدارة الخدمات الجوّالة للمؤسسات في شكل حالات التطبيقات المستندة إلى مفتاح. تتاح واجهات برمجة التطبيقات لإدارة الخدمات الجوّالة للمؤسسات لاسترداد بيانات حالة التطبيق المرتبطة بمفتاح، والتي يمكن عرضها بعد ذلك في وحدة التحكّم في إدارة الخدمات الجوّالة للمؤسسات. تسمح قناة الاتصال هذه لمشرفي تكنولوجيا المعلومات بتلقّي الملاحظات والآراء حول حالة التطبيقات المثبّتة على الأجهزة التي يديرونها.

على سبيل المثال، يمكن لتطبيق برنامج بريد إلكتروني استخدام حالات التطبيق الأساسية للتأكّد من ضبط الحساب بنجاح أو الإبلاغ عن حدوث أخطاء في المزامنة أو إرسال أي تعديلات حالة أخرى يعتبرها مطوِّر التطبيق مناسبًا.

مكوّنات حالة التطبيق المستندة إلى مفتاح

تتألف حالة التطبيق المُحوَّل من مفتاح مما يلي:

  • المفتاح: المعرّف الفريد لحالة التطبيق. الحد الأقصى لعدد الأحرف هو 100 حرف.
  • الرسالة: هي رسالة اختيارية تصف حالة التطبيق. الحد الأقصى لعدد الأحرف هو 1,000 حرف. ملاحظة: يجب أن تكون الرسائل عادةً أقصر من ذلك بكثير.
  • البيانات: قيمة اختيارية يمكن قراءتها آليًا ومخصصة لإدارة الخدمات الجوّالة للمؤسسات (EMM) للسماح لمشرفي تكنولوجيا المعلومات بإعداد التنبيهات أو الفلاتر استنادًا إلى القيمة. على سبيل المثال، يمكن لمشرف تكنولوجيا المعلومات إعداد تنبيه إذا كان حقل البيانات battery_percentage < 10. الحد الأقصى لعدد الأحرف هو 1,000 حرف.
  • درجة الخطورة: مدى خطورة حالة التطبيق. القيمتان المسموح بإدراجهما هما SEVERITY_ERROR وSEVERITY_INFO (القيمة التلقائية). يجب ضبط درجة الخطورة فقط على SEVERITY_ERROR لحالات الخطأ الحقيقية التي تحتاج المؤسسة إلى اتخاذ إجراءات لحلّها.
  • الطابع الزمني: عند ضبط حالة تطبيق مرتبط بمفتاح، يتم إرساله تلقائيًا مع طابع زمني بالمللي ثانية منذ البداية.

إرسال ملاحظات عن الإعدادات المُدارة

إذا كان تطبيقك يتيح عمليات الضبط المُدارة، ننصحك بإرسال حالات التطبيق المرتبطة بمفاتيح تشفيرها كطريقة لإطلاع مشرفي تكنولوجيا المعلومات على حالة الإعدادات التي ضبطوها. يصف مثال سير العمل التالي طريقة واحدة للقيام بذلك.

حالات التطبيق المرتبطة بمفاتيح ضبط الإعدادات المُدارة
  1. يستخدم مشرفو تكنولوجيا المعلومات وحدة التحكّم في إدارة الخدمات الجوّالة للمؤسسات (EMM) لضبط الإعدادات المُدارة وإرسالها لتطبيق تم تثبيته على جهاز مُدار بالكامل أو داخل ملف شخصي للعمل. مثل:
    • مستوى الصوت: "50%"
    • العملة: "USDD"
  2. يحاول التطبيق تطبيق الإعدادات. تم ضبط الحجم بنجاح على %50، ولكن رمز العملة غير صالح ولا يمكن تطبيقه.
  3. يضبط التطبيق حالة التطبيق المستنِدة إلى مفتاح استنادًا إلى حالة كل عملية ضبط. تحتوي كل حالة تطبيق مرتبطة بمفتاح على مفتاح فريد ورسالة تتضمن تفاصيل الحالة. ننصحك بمطابقة مفتاح الإعدادات المُدارة متى أمكن. على سبيل المثال:
    المفتاح الرسالة درجة الخطورة الطابع الزمني
    volume مضبوط على 50% SEVERITY_INFO 1554461130
    currency لم يتم التعرف على العملة "USDD" SEVERITY_ERROR 1554461130
  4. يسترد موفِّر خدمة "إدارة الخدمات الجوّالة للمؤسسات" حالات التطبيق المرتبطة بمفتاح التي يحدّدها التطبيق ويعرضها في وحدة التحكّم في إدارة الخدمات الجوّالة للمؤسسات. على سبيل المثال:
    الإعدادات الحالة مطلوب اتخاذ إجراء الوقت
    الصوت مضبوط على 50% لا 5 نيسان (أبريل) 2019؛ 10:45:30 صباحًا
    العملة خطأ: لم يتم التعرّف على العملة "USDD". نعم 5 نيسان (أبريل) 2019؛ 10:45:30 صباحًا

    على موفّر خدمة "إدارة الخدمات الجوّالة للمؤسسات" أيضًا إبلاغ مشرف تكنولوجيا المعلومات صراحةً عن أي حالات تم تلقّيها باستخدام SEVERITY_ERROR. يمكن لمشرفي تكنولوجيا المعلومات عرض المعلومات في وحدة التحكم في إدارة الخدمات الجوّالة للمؤسسات واتخاذ الإجراءات اللازمة لتصحيح أي أخطاء في الإعدادات التي ضبطوها.

الإبلاغ عن الأخطاء التي تم حلها

بعد حلّ الخطأ، أرسِل على الفور حالة تطبيق للمتابعة لمنع خدمات إدارة الخدمات الجوّالة للمؤسسات (EMM) من عرض رسالة الخطأ إلى أجل غير مسمى. يجب أن تتضمن حالة المتابعة هذه ما يلي:

  • هذا المفتاح نفسه الظاهر في رسالة الخطأ الأولية.
  • مستوى خطورة SEVERITY_INFO، ما يشير إلى أنّ الحالة ليست في حالة خطأ ولا تتطلّب من المؤسسة اتخاذ أي إجراء آخر.

إتاحة حالات التطبيق الأساسية في تطبيقك

توضّح الخطوات أدناه كيفية دمج حالات التطبيق الرئيسية في تطبيقك.

الخطوة 1: إضافة مستودع Maven من Google إلى ملف settings.gradle

أضِف مستودع Maven من Google كموقع مستودع في ملف settings.gradle لمشروعك، كما هو موضّح أدناه:

dependencyResolutionManagement {
  repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
  repositories {
       google()
  }
}

الخطوة 2: إضافة مكتبة ملاحظات المؤسسة إلى ملف build.gradle على مستوى الوحدة

أضِف التبعية التالية إلى ملف build.gradle على مستوى الوحدة:

dependencies {
    implementation 'androidx.enterprise:enterprise-feedback:1.0.0'
}

الخطوة 3: الحصول على مثيل KeyedAppStatesReporter

في طريقة onCreate()، يمكنك الحصول على مثيل KeyedAppStatesReporter وتخزينه. يتيح ذلك قناة اتصال بين تطبيقك وموفِّري إدارة الخدمات الجوّالة للمؤسسات (EMM).

لغة Kotlin

val reporter = KeyedAppStatesReporter.create(context)

جافا

KeyedAppStatesReporter reporter = KeyedAppStatesReporter.create(context);

الخطوة 4: إنشاء مجموعة من حالات التطبيق المرتبطة بمفتاح

اتّبِع أفضل الممارسات الموضّحة أدناه عند إنشاء حالات تطبيق رئيسية:

  • يجب عدم تضمين معلومات تحديد الهوية الشخصية (PII) مطلقًا في إحدى الولايات، وذلك لأنّ حالات التطبيقات المستندة إلى بيانات غير مناسبة للبيانات الحسّاسة.
  • احتفِظ بحالات التطبيق المُدمَجة ضمن الحدود المسموح بها في MAX_KEY_LENGTH وMAX_MESSAGE_LENGTH وMAX_DATA_LENGTH.
  • الحد الأقصى لمكالمة setStates أو setStatesImmediate الواحدة هو 300 كيلوبايت تقريبًا (حوالي 1/3 من الإجمالي الذي يمكن تخزينه يوميًا). وسيؤدي تجاوز هذا الحدّ إلى سلوك غير محدّد.
  • يجب فقط ضبط درجة خطورة الحالة على SEVERITY_ERROR في حال وجود حالة تحتاج مؤسسة إلى اتخاذ إجراء لإصلاحها.
  • عند إرسال حالة تطبيق تحتوي على أخطاء، تأكَّد أيضًا من إرسال حالة متابعة عند حل الأخطاء حتى تتوقف إدارة الخدمات الجوّالة للمؤسسات (EMM) عن الإبلاغ عن الأخطاء في وحدة التحكّم.
  • بالنسبة إلى حالة المتابعة، استخدِم المفتاح نفسه كالحالة الأولية التي أدّت إلى ظهور الخطأ واضبط درجة الخطورة على SEVERITY_INFO.

ينشئ المقتطف أدناه مجموعة من حالات التطبيق المرتبطة بمفاتيح:

لغة Kotlin

    val states = hashSetOf(KeyedAppState.builder()
             .setKey("key")
             .setSeverity(KeyedAppState.SEVERITY_INFO)
             .setMessage("message")
             .setData("data")
             .build())
    

جافا

    Collection states = new HashSet<>();
    states.add(KeyedAppState.builder()
     .setKey("key")
     .setSeverity(KeyedAppState.SEVERITY_INFO)
     .setMessage("message")
     .setData("data")
     .build());
    

الخطوة 5: ضبط حالات التطبيق المستندة إلى مفتاح

ترسل الطريقة setStates() على الفور حالات التطبيق المرتبطة بمفاتيح إلى تطبيق "متجر Play" (اسم الحزمة: com.android.vending) إذا كان مثبّتًا على الجهاز، بالإضافة إلى أي مشرفين على الجهاز أو الملف الشخصي للعمل.

لغة Kotlin

keyedAppStatesReporter.setStates(states)

جافا

keyedAppStatesReporter.setStates(states);

اختبار حالات التطبيق المرتبطة بمفاتيح

للحصول على تعليمات مفصّلة حول الاختبار، يُرجى الاطّلاع على ملاحظات حول تطبيق الاختبار.