Selamlar herkese, UFAK BİR SORUNUM VAR BUNU AŞAMIYORUM, AŞMAMDA YARDIM EDEN ARKADAŞA 1.000 TL NAKİT ÖDÜL VERİYORUM.
Not : Expo ile test için apk build aliyorum
React Native ile geliştirdiğim, cihaz ivmeölçer (accelerometer) verilerini anlık takip ederek sunucuya raporlayan bir projem var. Uygulamanın en kritik özelliği; kullanıcı uygulamayı kapatsa (swipe-away) bile arka planda sensör dinlemeye devam etmesi ve bildirim panelinde bu servisin asla kapanmayan (sticky) bir bildirimle kullanıcıya güven vermesi.
Şu ana kadar Expo Config Plugins kullanarak Native katmanda (Kotlin) bir Foreground Service yazdım. onTaskRemoved ve BOOT_COMPLETED gibi tetikleyicileri ekledim. Ancak gerçek cihaz testlerinde (özellikle Android 14 ve bazı OEM batarya katilleri olan Xiaomi/Samsung cihazlarda) şu iki sorunu aşamıyorum:
- Swipe-Away Sorunu: Uygulama "Son Uygulamalar" ekranından yukarı kaydırılarak kapatıldığında, Foreground Service sistem tarafından öldürülüyor. START_STICKY dönmeme rağmen servis kendiliğinden tekrar ayağa kalkmıyor.
- Notification Persistence: Bildirim panelindeki bildirim zorunlu kalmıyor, bu yüzden arka planda çalışmıyor gene.
Neler Denedim?
- PowerManager.isIgnoringBatteryOptimizations kontrolü ve izin yönlendirmesi.
- NotificationCompat.Builder içinde setOngoing(true) ve setSticky(true) kullanımı.
- Wakelock kullanarak işlemciyi uyanık tutmaya çalışmak.
Sorum şu: Android'in yeni kısıtlamalarında (Target SDK 34), bir sensör takip servisini "User-Stopped" durumunda bile native seviyede nasıl hayatta tutabilirim? Gözden kaçırdığım bir WorkManager stratejisi mi var yoksa Android artık buna hiçbir şekilde izin vermiyor mu?
Tecrübeli arkadaşlar ilgilenir misiniz ?