Mi a UnifiedPush?

Az asztali alkalmazásokkal ellentétben az Android-alkalmazások általában nem futhatnak hosszú ideig a háttérben. A mobiltelefon-gyártók az akkumulátor minél nagyobb töltöttségi szintjének megőrzése érdekében rendszerint arra késztetik készülékeik akkumulátorkezelőjét, hogy megöljék (bezárják) azokat az alkalmazásokat, amelyek már nem kerülnek előtérbe, mivel a felhasználók inkább olyan telefont szeretnének, ami nem merül le néhány óra alatt. Ez azonban számos korlátozást támaszt a régóta futó háttéralkalmazások tevékenységére: kliens-szerver architektúrában az ügyfélalkalmazás nem tud folyamatosan kapcsolatban maradni a kiszolgáló(k)hoz; elosztott architektúrában pedig előfordulhat, hogy az alkalmazás nem működik jól, mivel a rendszer akkumulátorkezelője megölheti, amint már nincs az előtérben.

Szerencsére az alkalmazások képesek voltak bizonyos megközelítéseket használni ennek megkerülésére:

  • az alkalmazás akkumulátor-optimalizálásának letiltása, hogy az ne sérüljön meg, amikor a háttérben van, és fenn tudja tartani a kapcsolatokat;
  • állandó értesítés használatával, hogy megakadályozza az alkalmazás leállítását (ezt tette a Jami „Futtatás a háttérben” beállítása); vagy
  • a leküldéses értesítési mechanizmus segítségével.

Sajnos Android rendszereken sokáig az egyetlen lehetőség a leküldéses értesítésekre a Google saját fejlesztésű Firebase Cloud Messaging (FCM) szolgáltatása volt. Alapvetően az alkalmazás felébresztéséhez a kiszolgáló FCM-en keresztül küld egy értesítést, amelyet a telefon fogadna, és az alkalmazás értesítést kapna.

Szerencsére megjelent egy ingyenes/szabadság csere: a UnifiedPush, amelyet most a Jami támogatja az F-Droidon a 20230227-01 (361) verzió óta.

A UnifiedPush egy olyan specifikáció és eszközkészlet, amely lehetővé teszi a felhasználó számára, hogy megválassza a leküldési értesítések kézbesítésének módját.

A UnifiedPush lehetővé teszi a felhasználók számára, hogy kizárólag ingyenes/szabadság szoftver használatával kapjanak leküldési értesítéseket, és megszabadítja a felhasználókat attól, hogy egyetlen céghez kötődjenek ahhoz, hogy leküldési értesítéseket kapjanak, így elkerülhető a szállítói bezárás és ösztönözve a decentralizációt, valamint adatvédelmi szempontból is kímélőbb lehetőségeket biztosít. és nagyobb kontrollt biztosít a felhasználóknak adataik felett.

Hogyan használhatom a UnifiedPush-t?

A UnifiedPush a Google FCM-éhez hasonlóan működik. Telepítenie kell egy Elosztó-alkalmazást, amely fogadja az értesítéseket és továbbítja azokat a többi alkalmazásra, amely előfizet rájuk. A gyakori lehetőségek a következők:

  • ntfy
  • NextPush (NextCloud kiszolgálón keresztül)
  • UP-FCM (a Google kiszolgálókon keresztül)

Telepítés után a Jami indításakor kiválaszthatod, hogy melyik forgalmazótól szeretnél leküldéses értesítéseket kapni. Ezután, ha a fiók beállításaiban engedélyezve van a DHT-proxy, az alkalmazás beállításaiban pedig a leküldéses értesítések, akkor a UnifiedPush a bejövő üzenetekről és hívásokról szóló értesítések fogadására szolgál.

Ha nincs telepítve elosztó, akkor egy ehhez hasonló értesítést láthat:

Ha van elosztó telepítve, a Jami a terjesztőn keresztül feliratkozik egy témára:

Screenshot from ntfy

A fenti képernyőképen azt látjuk, hogy Jami (cx.ring) figyeli a(z) ntfy.sh/updM8eGYBKuVG9 bejövő értesítéseit. Ezután, ha a DHT-proxy és a leküldési értesítések engedélyezve vannak a Jamiban, akkor könnyen és átláthatóan fogadhatja a leküldési értesítéseket.

Működni fog a UnifiedPush valaha iOS rendszeren?

Az iOS nem támogatja a szolgáltatások futtatását a háttérben, így a UnifiedPush-elosztó futtatása belátható időn belül nem lesz lehetséges jailbreak vagy az Apple jóváhagyása nélkül.

Forrás: UnifiedPush GYIK

Hogyan működik a UnifiedPush?

A UnifiedPush használatához a Jami regisztrálja magát egy DHT-proxyhoz, amely az eszköz nevében hallgatja a DHT-t. A korábbi verziókban a felhasználók kétféle módon használhatták a proxyt:

  1. a leküldési értesítések engedélyezésével, hogy a proxy leküldéses értesítést küldjön az FCM-nek anélkül, hogy le kellene tiltania az akkumulátoroptimalizálást; vagy
  2. leküldéses értesítések nélkül, az akkumulátor optimalizálás letiltásával, így az alkalmazás képes lenne kapcsolatot fenntartani a proxyval és üzeneteket fogadni onnan.

A UnifiedPush ötlete az, hogy az első módszert a második módszerhez hasonló megközelítéssel helyettesítse. A felhasználónak telepítenie kell egy elosztót (pl. ntfy), ami kikapcsolt akkumulátor optimalizálás mellett működik. Ez az elosztó ezután kapcsolódni tudna egy kiszolgálóhoz (ntfy esetén ez egy ntfy kiszolgáló lenne, mint a https://ntfy.sh). Ezután Jami megkéri a DHT proxyt, hogy küldjön leküldéses értesítéseket egy adott, az ntfy által meghallgatott témához. Amint megérkezik egy üzenet, az ntfy megkapja az értesítést, felébreszti Jamit, és megadja neki az értesítést.

Ennek a megközelítésnek a legnagyobb előnye, hogy egy alkalmazással több alkalmazáshoz is leküldéses értesítéseket lehet fogadni, ahelyett, hogy mindegyik alkalmazás egyedi protokollt használna, és külön-külön figyelné az értesítéseket (és így több energiát fogyasztana). Mint ilyen, ez az előny egyértelműen nyilvánvalóvá válik, ha a felhasználónak több olyan alkalmazása is van, amelyek ugyanazt a megközelítést használják (azaz a UnifiedPush-t). A UnifiedPush-t használó alkalmazások nem teljes listája

Erőforrások

Írta: Blin Sébastien és Bandali Amin