consola: push en background vía UnifiedPush (ntfy)
1<?xml version="1.0" encoding="utf-8"?>
2<manifest xmlns:android="http://schemas.android.com/apk/res/android">
3
4 <!-- Habla con el shuma-gateway por HTTP/WebSocket. -->
5 <uses-permission android:name="android.permission.INTERNET" />
6 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
7
8 <!-- Servicio de primer plano: mantiene viva la conexión WS al daemon
9 aunque la app pierda el foco. Tipo dataSync (sincroniza un stream). -->
10 <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
11 <uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" />
12 <!-- Necesario en Android 13+ para mostrar la notificación persistente. -->
13 <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
14
15 <application
16 android:label="@string/app_name"
17 android:icon="@mipmap/ic_launcher"
18 android:theme="@style/Theme.Consola"
19 android:supportsRtl="true"
20 android:usesCleartextTraffic="true">
21
22 <activity
23 android:name=".MainActivity"
24 android:exported="true"
25 android:launchMode="singleTask"
26 android:configChanges="orientation|screenSize|keyboard|keyboardHidden|uiMode"
27 android:windowSoftInputMode="adjustResize">
28 <intent-filter>
29 <action android:name="android.intent.action.MAIN" />
30 <category android:name="android.intent.category.LAUNCHER" />
31 </intent-filter>
32 </activity>
33
34 <service
35 android:name=".service.ConsolaService"
36 android:exported="false"
37 android:foregroundServiceType="dataSync" />
38
39 <!-- Receptor UnifiedPush: el distribuidor (ntfy) entrega los push aquí
40 aunque la app esté cerrada. -->
41 <receiver
42 android:name=".push.ConsolaPushReceiver"
43 android:exported="true">
44 <intent-filter>
45 <action android:name="org.unifiedpush.android.connector.MESSAGE" />
46 <action android:name="org.unifiedpush.android.connector.UNREGISTERED" />
47 <action android:name="org.unifiedpush.android.connector.NEW_ENDPOINT" />
48 <action android:name="org.unifiedpush.android.connector.REGISTRATION_FAILED" />
49 </intent-filter>
50 </receiver>
51 </application>
52</manifest>