استخدام وحدة تحديد الموقع في Pushwoosh في تطبيقات Android
هناك فئتان للوصول إلى الموقع في Android:
- الوصول إلى الموقع في المقدمة (Foreground)
- الوصول إلى الموقع في الخلفية (Background)
لتحديث موقع المستخدم في المقدمة (foreground)، يجب استيفاء أحد الشروط التالية:
- أحد أنشطة التطبيق نشط
- تم تشغيل خدمة المقدمة (Foreground service) من نوع
foregroundServiceType = “location”للتطبيق
يسمح الوصول في الخلفية (Background) للتطبيق بالحصول على الموقع الجغرافي للمستخدم بينما يكون التطبيق غير نشط، ولم يتم تشغيل أي خدمات مقدمة (foreground services) من نوع “location” لهذا التطبيق.
الوصول إلى الموقع في المقدمة (Foreground)
Anchor link toإذا كنت ستستخدم وحدة تحديد المواقع من Pushwoosh لتحديث موقع المستخدم فقط عندما يكون تطبيقك نشطًا، فأضف وحدة pushwoosh-location إلى ملف app/build.gradle الخاص بك:
implementation 'com.pushwoosh:pushwoosh-location:6.+'لتشغيل الوحدة، استخدم طريقة startLocationTracking:
PushwooshLocation.startLocationTracking();PushwooshLocation.startLocationTracking()استخدام ForegroundService لإجراء طلبات الموقع عندما يكون تطبيقك في الخلفية
Anchor link toلتشغيل ForegroundService عند استدعاء طريقة startLocationTracking، والتي تسمح بالحصول على الموقع الجغرافي للمستخدم عندما يكون تطبيقك في الخلفية، اتبع الخطوات الموضحة في الفقرة السابقة، ثم أضف البيانات الوصفية التالية إلى ملف AndroidManifest.xml الخاص بك:
...<application>.... <meta-data android:name="com.pushwoosh.start_foreground_service" android:value="true" />...</application>...عند تشغيل ForegroundService، يتم إنشاء إشعار. يمكنك تخصيص الإشعار عن طريق تحديد البيانات الوصفية الإضافية في ملف AndroidManifest.xml الخاص بمشروعك:
...<application>.... <meta-data android:name="com.pushwoosh.foreground_service_notification_text" android:value="My notification text" /> <meta-data android:name="com.pushwoosh.foreground_service_notification_channel_name" android:value="My notification channel name" />...</application>...الوصول إلى الموقع في الخلفية (Background)
Anchor link toلتحديث الموقع الجغرافي في الخلفية دون تشغيل ForegroundService، ستحتاج إلى ما يلي:
- الحصول على موافقة Google Play لوصول تطبيقك إلى الموقع في الخلفية (راجع https://support.google.com/googleplay/android-developer/answer/9799150?hl=en للحصول على التفاصيل)
- أضف الإذن إلى ملف AndroidManifest.xml الخاص بك:
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />- اطلب إذن المستخدم لتحديث الموقع في الخلفية بعد الحصول على إذن الموقع في المقدمة (ابحث عن الإرشادات في وثائق مطوري Android: https://developer.android.com/training/location/permissions#background-dialog-target-android-11)
في الإصدار 6.3.2 من وحدة pushwoosh-location، قمنا بتضمين طريقة إضافية تفتح شاشة إعدادات إذن الموقع إذا تم استيفاء الشروط التالية:
- يوجد إذن الموقع في المقدمة ممنوح للتطبيق؛
- يوجد إذن المستخدم
ACCESS_BACKGROUND_LOCATIONفي ملف AndroidManifest.xml الخاص بالتطبيق.
استدعِ الطريقة على النحو التالي:
PushwooshLocation.requestBackgroundLocationPermission();PushwooshLocation.requestBackgroundLocationPermission()أنواع أذونات Android 12+
Anchor link toبدءًا من Android 12، عند طلب إذن الوصول إلى الموقع في المقدمة، يمكن للمستخدم اختيار عدد مرات ودقة حصول التطبيق على موقع المستخدم.
هناك نوعان من تلك الأذونات:
- الموقع التقريبي (Approximate location)، وهو يعادل ACCESS_COARSE_LOCATION
- الموقع الدقيق (Precise location)، وهو يعادل ACCESS_FINE_LOCATION و ACCESS_COARSE_LOCATION
شاركنا ملاحظاتك
Anchor link toتساعدنا ملاحظاتك في إنشاء تجربة أفضل، لذا نود أن نسمع منك إذا واجهت أي مشاكل أثناء عملية دمج SDK. إذا واجهت أي صعوبات، فلا تتردد في مشاركة أفكارك معنا عبر هذا النموذج.