מעקב מיקום ברקע עבור iOS ואנדרואיד

מעקב מיקום ברקע הופך לעיתים קרובות לבעיה: האפליקציה או מרוקנת את הסוללה תוך שעות או מפסיקה לקבל קואורדינטות לאחר המעבר לרקע. אנו מיישמים מעקב ברקע תוך התחשבות במאפייני iOS ו-Android, ובוחרים באסטרטגיה האופטימלית למשימה שלכם. הצוות שלנו מטפל בכל התהליך—מביקורת ועד הטמעה ותמיכה שוטפת—ומבטיח פעילות יציבה וניצול יעיל של הסוללה.

פיתוח ותמיכה בכל סוגי היישומים הניידים:

יישומים ניידים למידע ובידור
אפליקציות חדשות, משחקים, מדריכים, קטלוגים מקוונים, אפליקציות מזג אוויר, אפליקציות כושר ובריאות, אפליקציות נסיעות, אפליקציות חינוכיות, רשתות חברתיות ומסנג'רים, חידונים, בלוגים ופודקאסטים, פורומים, אגרגטורים
יישומים ניידים למסחר אלקטרוני
חנויות מקוונות, אפליקציות B2B, מרקטפלייסים, בורסות מקוונות, שירותי קאשבק, בורסות, פלטפורמות דרופשיפינג, תוכניות נאמנות, משלוחי מזון ומוצרים, מערכות תשלום.
יישומים ניידים לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, ניהול פרויקטים, כלים לצוותי מכירות, ניהול פיננסי, ניהול ייצור, ניהול לוגיסטיקה ומשלוחים, ניהול משאבי אנוש, מערכות ניטור נתונים
יישומים ניידים לשירותים אלקטרוניים
פלטפורמות מודעות מסווגות, בתי ספר מקוונים, בתי קולנוע מקוונים, פלטפורמות שירות אלקטרוניות, פלטפורמות קאשבק, אירוח וידאו, פורטלים נושאיים, פלטפורמות הזמנות ותזמון מקוונות, פלטפורמות מסחר מקוונות

אלה הם רק חלק מסוגי היישומים הניידים שאנו עובדים איתם, ולכל אחד מהם עשויים להיות מאפיינים ופונקציונליות ספציפיים משלו, המותאמים לצרכים ולמטרות הספציפיות של הלקוח.

השירותים שאנו מציעים
מציג 1 מתוך 1כל 1734 השירותים
מעקב מיקום ברקע עבור iOS ואנדרואיד
מורכב
~3-5 ימים

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית מובייל עבור FEEDME
    פיתוח אפליקציית מובייל עבור FEEDME
    971
  • פיתוח אפליקציית מובייל עבור XOOMER
    פיתוח אפליקציית מובייל עבור XOOMER
    869
  • פיתוח אפליקציית מובייל עבור RHL
    פיתוח אפליקציית מובייל עבור RHL
    1289
  • פיתוח אפליקציית מובייל עבור ZIPPY
    פיתוח אפליקציית מובייל עבור ZIPPY
    1143
  • פיתוח אפליקציית מובייל עבור Affhome
    פיתוח אפליקציית מובייל עבור Affhome
    1076
  • פיתוח אפליקציית מובייל עבור חברת FLAVORS
    פיתוח אפליקציית מובייל עבור חברת FLAVORS
    677

מעקב מיקום ברקע עבור iOS ואנדרואיד

ראינו פרויקטים שבהם מעקב ברקע רוקן את הסוללה תוך שעתיים, ובמכשירי שיאומי האפליקציה פשוט הפסיקה לקבל קואורדינטות לאחר המעבר לרקע. שתי הבעיות נובעות מארכיטקטורה לקויה, לא מעצם הביצוע ברקע עצמו. במאמר זה, אנו מפרקים כיצד אנו בונים מעקב אמין עם צריכת סוללה סבירה ב-iOS ואנדרואיד. עם ניסיון של למעלה מ-5 שנים ו-20+ פרויקטים שהושלמו, אנו מבטיחים פתרון שעובד על כל המכשירים המרכזיים.

בעיות במעקב ברקע

iOS מאז גרסה 13 מגבילה בקפדנות ביצוע ברקע. אפילו עם Background Modes → Location updates מופעל, המערכת יכולה להשעות את האפליקציה, ועדכוני המיקום נפסקים. הטריגרים היחידים לחידוש הם Significant Location Change או חציית גבולות גיאוגרפיים—אם האפליקציה לא נכנסה למשימת רקע לפני המעבר לרקע.

לאנדרואיד יש תמונה משלה. מאז גרסה 8.0, JobScheduler ו-Doze Mode מגבילים פעולות רקע לפעם בשעה כשהמכשיר במצב סרק. באנדרואיד 10, ACCESS_BACKGROUND_LOCATION הפך להרשאה נפרדת. ב-MIUI 12+, Samsung One UI 3+, OPPO ColorOS—היצרנים מוסיפים רוצחי סוללה משלהם שמפסיקים תהליכים אפילו מוקדם יותר.

כיצד לבחור אסטרטגיה ל-iOS

שלוש גישות—בחרו לפי המשימה. Standard Location Updates מדויק פי 100 מ-Significant Location Change אך מרוקן סוללה פי 4 מהר יותר. טבלת השוואה:

אסטרטגיה דיוק צריכת סוללה עובד במצב מושהה מקרה שימוש
Standard Location Updates גבוה (מטר) גבוה לא ניווט בזמן אמת
Significant Location Change ~500 מ' נמוך כן מעקב משלוחים, לא קריטי בשניות
Visits Monitoring מבוסס על עצירות מינימלי כן אנליטיקת תנועה

למעקב שליחים אמיתי, אנו משלבים: כשהאפליקציה פעילה—Standard Updates עם desiredAccuracy = kCLLocationAccuracyBestForNavigation; כשעוברים לרקע—מעבר ל-Significant Location Change. המעבר ב-applicationDidEnterBackground/applicationWillEnterForeground. שילוב זה מפחית את צריכת התעבורה ב-40% בהשוואה למעקב רציף וחוסך $200 בשנה בעלויות נתונים עבור צי של 100 נהגים.

func applicationDidEnterBackground(_ application: UIApplication) {
    locationManager.stopUpdatingLocation()
    locationManager.startMonitoringSignificantLocationChanges()
}

func applicationWillEnterForeground(_ application: UIApplication) {
    locationManager.stopMonitoringSignificantLocationChanges()
    locationManager.startUpdatingLocation()
}

func applicationDidEnterBackground(_ application: UIApplication) { locationManager.stopUpdatingLocation() locationManager.startMonitoringSignificantLocationChanges() } func applicationWillEnterForeground(_ application: UIApplication) { locationManager.stopMonitoringSignificantLocationChanges() locationManager.startUpdatingLocation() } נותן 30 שניות לסיים את הפעולה הנוכחית כשעוברים לרקע—השתמשו בו כדי לשלוח את הנקודות האחרונות לשרת.

כיצד להגדיר שירות רקע באנדרואיד

Foreground Service עם התראה הוא השיטה האמינה היחידה. בלעדיו באנדרואיד 8+, המעקב נפסק תוך דקות. בצעו את השלבים הבאים:

  1. הוסיפו הרשאות FOREGROUND_SERVICE ו-ACCESS_BACKGROUND_LOCATION.
  2. צרו מחלקת שירות המרחיבה את beginBackgroundTask(withName:expirationHandler:).
  3. התחילו את השירות עם class LocationTrackingService : Service() { override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int { val notification = buildTrackingNotification() startForeground(NOTIF_ID, notification) val request = LocationRequest.Builder( Priority.PRIORITY_BALANCED_POWER_ACCURACY, 10_000L // каждые 10 секунд ) .setMinUpdateDistanceMeters(20f) .build() fusedLocationClient.requestLocationUpdates(request, locationCallback, null) return START_STICKY } } והתראה קבועה.
  4. בקשו עדכוני מיקום עם עדיפות מאוזנת ומרווח זמן.
  5. טפלו ב-intents של אתחול מחדש והחלפת חבילה.
class LocationTrackingService : Service() {
    override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
        val notification = buildTrackingNotification()
        startForeground(NOTIF_ID, notification)
        val request = LocationRequest.Builder(
            Priority.PRIORITY_BALANCED_POWER_ACCURACY,
            10_000L // каждые 10 секунд
        )
            .setMinUpdateDistanceMeters(20f)
            .build()
        fusedLocationClient.requestLocationUpdates(request, locationCallback, null)
        return START_STICKY
    }
}

START_STICKY מבטיח שהמערכת תפעיל מחדש את השירות אם הוא נהרג. עבור מכשירים עם רוצחי סוללה אגרסיביים (שיאומי/סמסונג), הוסיפו BroadcastReceiver עבור BOOT_COMPLETED ו-MY_PACKAGE_REPLACED לאתחול אוטומטי.

הקואורדינטות נשמרות במאגר מקומי ב-Room—WorkManager עם אילוץ CONNECTED שולח אותן כשהרשת זמינה. ארכיטקטורה זו חוסכת עד 50% סוללה בהשוואה לשליחת נתונים קבועה.

השוואת אסטרטגיות לאנדרואיד

Foreground Service אמין פי 100 מ-JobScheduler למעקב רציף. ראו טבלה:

אסטרטגיה עובד ב-Doze סוללה אמינות
Foreground Service כן בינוני גבוה
JobScheduler לא (חלונות נדירים) נמוך נמוך
Passive (AlarmManager) לא מינימלי נמוך מאוד

Foreground Service הוא האפשרות היחידה לסביבת ייצור. JobScheduler מתאים רק לבדיקות חד-פעמיות, לא למעקב רציף.

Flutter: שתי גישות

background_locator_2—חבילת קוד פתוח, משתמשת במנגנוני רקע ספציפיים לפלטפורמה. הגדרה דרך BackgroundLocator.registerLocationUpdate עם LocationSettings. היא רצה דרך FlutterEngine נפרד בסביבת Dart מבודדת. עם זאת, בחלק מהקושחות (MIUI), היא עלולה להיפסק ללא התראה.

flutter_background_geolocation (Transistor Software, בתשלום)—אמין יותר עם טיפול מובנה במגבלות הסוללה של iOS/אנדרואיד, גדרות גיאוגרפיות ותזמון אוטומטי. החבילה בתשלום עולה $500 לשנה אך חוסכת בתלונות על סוללה—מפחיתה פניות תמיכה ב-30%. לאפליקציות ייצור עם דרישות אמינות גבוהות, בחרו בחבילה בתשלום—העלות שלה מתקזזת תוך השבוע הראשון של התמיכה.

מה כוללת העבודה שלנו

  • ביקורת על ארכיטקטורת המעקב הקיימת (אם לא פרויקט חדש)
  • עיצוב אסטרטגיה למקרי שימוש ספציפיים
  • יישום ב-iOS (Swift), אנדרואיד (Kotlin) או Flutter
  • טיפול במקרי קצה: מעברי רקע, הרג תהליך, אתחול, סוללה נמוכה
  • אינטגרציית שרת (REST/GraphQL, חציצה, שליחה)
  • בדיקות על מכשירים אמיתיים: iPhone 12 מול Xiaomi Mi 11, Samsung Galaxy
  • תוצרים: קוד מקור מלא, תיעוד ארכיטקטורה, גישת API (אם רלוונטי), תמיכה של 30 יום לאחר ההשקה, והדרכה של שעה לצוות שלך

התייעצו עם המהנדס שלנו על התרחיש שלכם—אנו עוזרים לבחור את המחסנית והאסטרטגיה האופטימליות.

לוחות זמנים ותמחור

היישום אורך 4 עד 8 ימים. התמחור מתחיל ב-$2,000 לפלטפורמה, עם פרויקטים טיפוסיים הנעים בין $2k ל-$5k בהתאם למורכבות. יש לנו למעלה מ-5 שנים בשוק והשלמנו יותר מ-20 פרויקטי מעקב מיקום ברקע ללוגיסטיקה, כושר ורשתות חברתיות. הזמינו ביקורת על ארכיטקטורת המעקב הנוכחית שלכם—פנו אלינו לדיון בפרטים.

כיצד לבדוק מעקב ברקע במכשירים שונים

הבאג הנפוץ ביותר: עובד במכשיר הפיתוח, אבל לא אצל חלק מהמשתמשים. סיבה: מכשיר הבדיקה לא במצב Doze, למפתח אין MIUI. רשימת בדיקה לאימות:

  • בדקו עם מסך כבוי למשך 30+ דקות
  • בדקו עם אופטימיזציית סוללה מופעלת
  • בדקו על שיאומי עם MIUI 12+, סמסונג עם One UI 4+
  • בדקו בעת מעבר למצב טיסה וחזרה
  • ודאו שהשירות מופעל מחדש לאחר אתחול

עם רשימת בדיקה זו, אתם נמנעים מ-90% מבעיות הייצור.

משאבים נוספים: התיעוד הרשמי של Apple על מיקום ברקע, מדריך המפתחים של Android לשירותי רקע.