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.
- 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.
Tecrübeli arkadaşlar ilgilenir misiniz ?