نصب چشمک در Eclipse

  • ابتدا کتابخانه چشمک برای Eclipse را دانلود کرده و extract کنید.

  • در نرم افزار اکلیپس، بر روی File -> Import کلیک کنید، Android -> Existing Android Code into Workspace را انتخاب کنید و به محل فولدر extract شده بالا بروید و کتابخانه های google-play-services-basement-9.4.0 و google-play-services-base-9.4.0 را انتخاب کنید .

  • فایل های android-priority-jobqueue.jar ، play-services-gcm-9.4.0.jar ، play-services-iid-9.4.0.jar ، okio.jar ، okhttp.jar ، push.jar به همراه فایل analytics-1.1.0.jar را که درون فولدر extract شده وجود دارد به عنوان کتابخانه به پروژه خود اضافه کنید. (جهت این کار ، فایل ها را درون فولدر libs پروژه کپی کنید)

  • بر روی پروژه خود کلیک راست کنید و به شاخه Properties -> Android -> Library بروید و با فشردن کلید Add کتابخانه های گوگل بالا را انتخاب کنید.

  • پوشه res درون فایل زیپ را به فولدر res پروژه خود اضافه کنید.

  • سپس به فایل AndroidManifest.xml خود دسترسی های زیر را اضافه نمایید.

    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    
  • در فایل AndroidManifest.xml درون تگ application مقادیر زیر را اضافه نمایید.

<meta-data
           android:name="com.google.android.gms.version"
           android:value="@integer/google_play_services_version" />

       <service
           android:name="me.cheshmak.android.sdk.core.push.CheshmakPushRegistration"
           android:exported="false" />
       <service
           android:name="me.cheshmak.android.sdk.core.push.CheshIDListenerService"
           android:exported="false" >
           <intent-filter>
               <action android:name="com.google.android.gms.iid.InstanceID" />
           </intent-filter>
       </service>
       <service android:name="me.cheshmak.android.sdk.core.push.CheshGcmListenerService" />

       <receiver
           android:name="com.google.android.gms.gcm.GcmReceiver"
           android:exported="true"
           android:permission="com.google.android.c2dm.permission.SEND" >
           <intent-filter>
               <action android:name="com.google.android.c2dm.intent.RECEIVE" />

               <category android:name="me.cheshmak.android.sdk.core" />
           </intent-filter>
       </receiver>
       <receiver android:name="me.cheshmak.android.sdk.core.receivers.AlarmReceiver" >
           <intent-filter>
               <action android:name="android.intent.action.TIME_SET" />
               <action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
               <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />
               <action android:name="android.intent.action.DELETE" />
           </intent-filter>
       </receiver>
       <receiver android:name="me.cheshmak.android.sdk.core.receivers.RemoteReceiver" >
           <intent-filter>
               <action android:name="CHESH_REMOTE_DATA_ACTION" />
           </intent-filter>
       </receiver>
       <receiver android:name="me.cheshmak.android.sdk.core.receivers.LocationReceiver" />
       <receiver
           android:name="me.cheshmak.android.sdk.core.push.GcmBroadcastReceiver"
           android:permission="com.google.android.c2dm.permission.SEND" >
           <intent-filter>
               <action android:name="com.google.android.c2dm.intent.RECEIVE" />
           </intent-filter>
       </receiver>

       <service
           android:name="me.cheshmak.android.sdk.core.network.EventSendService"
           android:enabled="true" >
       </service>
       <service
           android:name="me.cheshmak.android.sdk.core.network.NotificationService"
           android:enabled="true" />

       <receiver
           android:name="me.cheshmak.android.sdk.core.network.AppStartReceiver"
           android:enabled="true" >
           <intent-filter>
               <action android:name="me.cheshmak.start" />
               <action android:name="android.intent.action.BOOT_COMPLETED" />
               <action android:name="android.intent.action.QUICKBOOT_POWERON" />
           </intent-filter>
       </receiver>
       <receiver android:name="me.cheshmak.android.sdk.core.push.MessageHandler" />
       <receiver android:name="me.cheshmak.android.sdk.core.receivers.AppChangeListener" >
           <intent-filter android:priority="10000" >
               <action android:name="android.intent.action.PACKAGE_INSTALL" />
               <action android:name="android.intent.action.PACKAGE_ADDED" />
               <action android:name="android.intent.action.PACKAGE_REMOVED" />
               <action android:name="android.intent.action.PACKAGE_REPLACED" />

               <data android:scheme="package" />
           </intent-filter>
       </receiver>

       <service
           android:name="me.cheshmak.android.sdk.core.task.WifiTask"
           android:exported="true"
           android:permission="com.google.android.gms.permission.BIND_NETWORK_TASK_SERVICE" >
           <intent-filter>
               <action android:name="com.google.android.gms.gcm.ACTION_TASK_READY" />
           </intent-filter>
       </service>

       <receiver android:name="me.cheshmak.android.sdk.core.receivers.Listener" >
           <intent-filter>
               <action android:name="android.net.wifi.SCAN_RESULTS" />
               <action android:name="SCAN_RESULTS_AVAILABLE_ACTION" />
           </intent-filter>
       </receiver>

برای استفاده از چشمک باید کدهای راه اندازی زیر را در کلاس Application برنامه درون تابع onCreate اضافه کنید .اگر برنامه شما داری کلاس Application نیست از راهنمای زیر برای ایجاد آن استفاده نمایید:

چگونه کلاس Application ایجاد کنیم

CheshmakConfig config= new CheshmakConfig();
config.setIsEnableAutoActivityReports(true);
config.setIsEnableExceptionReporting(true);
Cheshmak.with(context, config);
​// OR​
​// Cheshmak.with(context);​
​// Cheshmak.configure(config);​
Cheshmak.initTracker(APP_KEY);
  • مقدار APP_KEY را باید از پنل چشمک بعد از ساختن برنامه جدید دریافت کنید.
  • در آخر هم در فایل پروگارد پروژه خود مقادیر زیر را وارد نمایید.
-keep class sun.misc.Unsafe { *; }
-keepattributes Signature
-keepattributes *Annotation*
-dontwarn java.nio.file.*
-dontwarn com.google.android.gms.**
-keep class com.google.android.gms.**
-keepnames class org.apache.** {*;}
-keep public class org.apache.** {*;}
-dontwarn org.apache.commons.logging.LogFactory
-dontwarn org.apache.http.annotation.ThreadSafe
-dontwarn org.apache.http.annotation.Immutable
-dontwarn org.apache.http.annotation.NotThreadSafe
-keep class org.apache.http.**
-keep class android.net.http.**
-dontwarn com.a.c.a
-dontwarn me.cheshmak.android.sdk.core.a.b
-dontwarn okio.**
-dontwarn com.birbit.android.**
-keep class com.logentries.** {*;}

توجه: یکی از مقدمات مهم برای صحیح اجرا شدن کتابخانه چشمک، وجود داشتن و بروز بودن فایل android-support-v4.jar می باشد. برای به روز رسانی به محل فولدر extract شده رفته و فایل android-support-v4.jar را جایگزین فایل android-support-v4.jar پروژه خود کنید. برای این کار به Workspace خود بروید و وارد فولدر پروژه و سپس وارد فولدر libs شوید و این فایل را جایگزین کنید و اگر این فایل از قبل موجود نیست آن را در این فولدر قرار دهید.