تكوين Oracle Mobile Hub SDK باستخدام تطبيق الأجهزة المتنقلة

يجب تكوين Oracle Mobile Hub SDK مع تطبيق الأجهزة المتنقلة قبل كتابة أي رمز.

إضافة SDK

في إعداد تطبيق أساسي ، دون تداخل frameworks ، ستقوم بإضافة Android client SDK إلى تطبيق.

  1. فك ضغط ملف SDK المضغوط لعميل Android.

  2. انسخ ملفات SDK jar إلى مجلد libs في مشروع التطبيق. إذا لم يكن هذا المجلد موجودًا ، فقم بتكوينه في نفس المستوى في تدرج المجلدات src و build.

  3. في Android Studio ، حدد ملف ثم جديد ثم وحدة نمطية جديدة لبدء المعالج في استيراد IDMMobileSDK.jar في المشروع.

  4. انقر على استيراد .JAR /.AAR الحزمة واتبع المعالج لاستيراد IDMMobileSDK.jar إلى المشروع.
  5. في الشبكة المصدر للتطبيق ، قم بتكوين مجلد باسم assets (على نفس مستوى المجلدات java و res).

  6. في حزمة SDK ، حدد موقع ملف oracle_mobile_cloud_config.xml وانسخه إلى المجلد assets.

  7. في ملف build.gradle الخاص بالتطبيق ، تأكد أن ما يلي ينتمي إلى التبعيات المسجلة حتى تكون مكتبات SDK متاحة للتطبيق.

    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile 'com.squareup.okhttp3:okhttp:3.9.0'
        compile 'org.slf4j:slf4j-jdk14:1.7.13'
        //to enable the app to receive notifications, include the following:
        compile 'com.google.firebase:firebase-messaging:11.0.2'
    		compile 'com.facebook.android:facebook-android-sdk:4.25.+'
    }
  8. إذا تم تصميم التطبيق لتلقي إشعارات كجزء من حملات التحليلات ، فأضف السطر التالي في الجزء السفلي من build.gradle.

    apply plugin: 'com.google.gms.google-services'
  9. افتح assets/oracle_mobile_cloud_config.xml وقم بتعبئة بيانات البيئة في الخلفية المتحركة التي سيستخدمها التطبيق.

تكوين خصائص SDK

لاستخدام SDK للعميل في تطبيق Android، تلزم إضافة ملف تكوين oracle_mobile_cloud_config.xml إلى التطبيق وملئه ببيانات البيئة للتمكن من استخدام الخلفية في Oracle Mobile Hub. بدورها، تستخدم كلاسات SDK هذه المعلومات لإنشاء رؤوس HTTP لاستدعاءات REST التي تم إجراؤها على Oracle Mobile Hub.

يمكنك وضع ملف التكوين في الحزمة الرئيسية للتطبيق في مجلد assets على نفس مستوى مجلدات java و res. على سبيل المثال ، في نموذج تطبيق GettingStarted، يكون في /GettingStarted/src/main/assets.

يتم تقسيم الملف بشكل أساسي إلى الأجزاء التالية:

  • العنصر mobileBackend ومحتوياته.

    ويمكنك تضمين هذا الجزء إذا كنت تستخدم أسلاف مع التطبيق. تستخدم كلاسات SDK بيانات البيئة والمصادقة التي تحددها الوصول إلى الخلفية وإنشاء رؤوس HTTP لعمليات استدعاء REST التي تم إجراؤها على واجهات api.

  • العناصر التي تنطبق على التكوين ككل ، مثل logLevel و oAuthTokenEndpoint. وعادة ما لا يتعين على هذه العناصر أن تظهر في أعلى الملف.

توضح عينة التعليمات البرمجية التالية هيكل ملف oracle_mobile_cloud_config.xml.

<config>

  <!--This value is required if you are using OAuth to authenticate against the mobile backend-->
  <oAuthTokenEndPoint>YOUR_OAUTH_TOKEN_END_POINT<oAuthTokenEndPoint>
  <!--Set to true if you want to get logging information-->
  <enableLogger>true</enableLogger>
  <logLevel>DEBUG</logLevel>
  <!--Whether to log HTTP call request and response bodies and headers-->
  <logHTTP>true</logHTTP>

  <!-- Include the mobileBackend element and its sub-elements if you are going 
       to be using a backend to access custom and platform APIs.-->
  <mobileBackend>
    <name>MBE_NAME</name>
    <baseUrl>BASE_URL</baseUrl>
    <enableAnalytics>true</enableAnalytics>
    <authentication>
      <!--possible values for type are [oauth, basic, facebook, tokenExchange ]-->
      <type>AUTH_TYPE</type>
      <oauth>
        <clientId>CLIENT_ID</clientId>
        <clientSecret>CLIENT_SECRET</clientSecret>
        <enableOffline>true</enableOffline>
      </oauth>
      <basic>
        <mobileBackendId>MOBILE_BACKEND_ID</mobileBackendID>
        <anonymousKey>ANONYMOUS_KEY</anonymousKey>
        <enableOffline></enableOffline>
      </basic>
      <facebook>
        <appId>FACEBOOK_APP_ID</appId>
        <scopes>public_profile,user_friends,email,user_location,user_birthday</scopes>
        <basic>
          <mobileBackendId>MOBILE_BACKEND_ID</mobileBackendID>
          <anonymousKey>ANONYMOUS_KEY</anonymousKey>
        </basic>
      </facebook>
      <tokenExchange>
        <! tokenExchange can contain an 'oauth' sub-element or a 'basic' sub-element.
        <oauth>
          <clientId>CLIENT_ID</clientId>
          <clientSecret>CLIENT_SECRET</clientSecret>
        </oauth>
        <basic>
          <mobileBackendId>MOBILE_BACKEND_ID</mobileBackendID>
          <anonymousKey>ANONYMOUS_KEY</anonymousKey>
        </basic>
      <tokenExchange>
    </authentication>
    <!-- additional properties go here -->
  </mobileBackend>

</config>

يمكن العثور على القيم التي تحتاجها لتعبئة النهاية الخلفية المحددة في صفحتي "إعدادات " و "ملف تعريف التطبيق " في نهاية الهاتف النقال هذه.

فيما يلي بعض الملاحظات حول عناصر الملف.

  • oAuthTokenEndPoint — عنوان URL لخادم OAuth حيث يحصل التطبيق على مقطع التصديق الخاص به. يجب إدخال هذا المفتاح لكل التطبيقات التي تعتمد على OAuth للتصديق عليها. يمكنك الوصول إلى ذلك من صفحة "إعدادات" في الخلفية.

  • logLevel — تحديد عدد مرات عرض تسجيل SDK في وحدة التحكم الطرفية للتطبيق. القيمة الافتراضية هي ERROR. القيم الأخرى الممكنة (على مستوى الزيادة من البيانات) هي WARNING و INFO و DEBUG. كما يمكن تحديد NONE.

  • enableLogger — عند التعيين إلى true، يتم تضمين التسجيل في التطبيق.

  • logHTTP — عند التعيين إلى true، يقوم SDK بتسجيل رؤوس HTTP وHTTPS في الطلبات والاستجابات.

  • mobileBackend — عنصر يشتمل على بيانات التصديق للنهاية الخلفية وغيرها من البيانات الاختيارية ، مثل خصائص المزامنة.

    يمكنك الحصول على بيانات التصديق ، مثل بيانات صلاحية OAuth وHTTP ، من صفحة الإعدادات في الخلفية.

  • mobileBackend/baseUrl — عنوان URL الأساسي لجميع واجهات api التي تقوم باستدعائها خلال الخلفية. يمكنك الوصول إلى ذلك من صفحة "إعدادات" في الخلفية.

  • mobileBackend/authentication — يحتوي على العناصر الفرعية التالية:

    • العنصر الفرعي type المشتمل على القيم الممكنة oauth و basic و facebook و tokenExchange.

    • عنصر فرعي أو أكثر لأنواع التصديق ، يحتوي كل عنصر على صلاحيات التصديق.

      يمكنك أيضًا إضافة المفتاح offlineEnabled وتعيين قيمته إلى true.

  • enableOffline — في حالة التعيين إلى true، يُسمح بالدخول في حالة عدم الاتصال. وينطبق ذلك فقط على نوعي الدخول Basic و OAuth. لكي يعمل ، يجب أيضًا إضافة ما يلي إلى ملف AndroidManifest.xml الخاص بالتطبيق:
    <receiver android:name="oracle.cloud.mobile.network.NetworkHelper"
      <intent-filter>
        <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
      </intent-filter>
    </receiver>

تكوين ملف بيان Android

يتم التحكم في الأذون اللازمة للعمليات مثل الوصول إلى الشبكة والبحث عن حالة الشبكة من خلال إعدادات الأذون الموجودة في ملف بيان التطبيق ، AndroidManifest.xml. هذه الأذون مطلوبة:

  • permission.INTERNET — السماح للتطبيق الخاص بك بالوصول إلى مقابس الشبكة المفتوحة.

  • permission.ACCESS_NETWORK_STATE — السماح للتطبيق بالوصول إلى معلومات حول الشبكات.

الأذون الأخرى اختيارية. على سبيل المثال ، هناك عدد من الأذون اللازمة لكي يتمكن التطبيق من تلقي الإشعارات. للاطلاع على التشغيل على الأذون المتاحة ، راجع أذون بيان Android في وثائق Google.

أضف الأذون أعلى ملف AndroidManifest.xml، كما هو موضح في المثال التالي:

<?xml version="1.0" encoding="UTF-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="oracle.cloud.mobile.sample" >
  <uses-permission android:name="android.permission.INTERNET" />
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  <uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE"/>
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
  <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

  <application>
<provider
	android:name="com.facebook.FacebookContentProvider"
	android:authorities="com.facebook.app.FacebookContentProvider430660953811847"
	android:exported="true" />    
<receiver 
	android:name="oracle.cloud.mobile.network.NetworkHelper"
      <intent-filter>
        <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
      </intent-filter>
    </receiver>

    (.....)
  </application>
</manifest>

قد تتطلب إضافة SDK للعميل إلى التطبيق تكوين ملف AndroidManifest.xml الخاص بك لإضافة أذون أو أنشطة جديدة. على سبيل المثال ، في حالة إضافة مكتبة SDK الفردية للتبليغات ، قد تحتاج أيضًا إلى إضافة مستلم بث جديد.