Implementiert den kompletten Kern-Flow der Emergency App gemäß docs/plan.md: - Notrufnummern-Datenbasis für 199 Länder + Modelle/Repository (AP1) - DialerService für tel:-Notrufe ohne Auto-Dial (AP2) - Statisches UI mit Panik-Button-Fallback (AP3) - Priorisierte Ländererkennung: SIM/Netz -> GPS/Geocoding -> Cache (AP4) - EmergencyProvider verdrahtet Repository/LocationService mit der UI (AP5) - Manuelle Länderauswahl als Fallback samt eigener Priorität (AP6) - UI-Lokalisierung (de/en/fr/es), an erkanntes Land gekoppelt (AP7) Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
70 lines
3.7 KiB
XML
70 lines
3.7 KiB
XML
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||
<!-- Ländererkennung (docs/plan.md Abschnitt 6+7, AP4): GPS-Fallback,
|
||
falls die SIM-/Netz-Quelle nichts liefert. -->
|
||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
||
|
||
<!-- Ländererkennung, Primärquelle SIM/Netz (`carrier_info`-Plugin, laut
|
||
dessen README/Beispiel-Manifest im pub-cache benötigt):
|
||
ACCESS_NETWORK_STATE für den Netzwerkstatus,
|
||
READ_PHONE_STATE/READ_BASIC_PHONE_STATE/READ_PHONE_NUMBERS für
|
||
TelephonyManager- bzw. SubscriptionManager-Zugriff auf
|
||
networkCountryIso/countryIso. Bewusst NICHT übernommen:
|
||
READ_PRIVILEGED_PHONE_STATE ist eine signature|privileged-Permission,
|
||
die eine normale Store-App ohnehin nie gewährt bekommt – sie zu
|
||
deklarieren hätte keinen Nutzen, nur unnötige Store-Review-Fragen. -->
|
||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||
<uses-permission android:name="android.permission.READ_BASIC_PHONE_STATE" />
|
||
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
||
<uses-permission android:name="android.permission.READ_PHONE_NUMBERS" />
|
||
<application
|
||
android:label="emergency"
|
||
android:name="${applicationName}"
|
||
android:icon="@mipmap/ic_launcher">
|
||
<activity
|
||
android:name=".MainActivity"
|
||
android:exported="true"
|
||
android:launchMode="singleTop"
|
||
android:taskAffinity=""
|
||
android:theme="@style/LaunchTheme"
|
||
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
|
||
android:hardwareAccelerated="true"
|
||
android:windowSoftInputMode="adjustResize">
|
||
<!-- Specifies an Android theme to apply to this Activity as soon as
|
||
the Android process has started. This theme is visible to the user
|
||
while the Flutter UI initializes. After that, this theme continues
|
||
to determine the Window background behind the Flutter UI. -->
|
||
<meta-data
|
||
android:name="io.flutter.embedding.android.NormalTheme"
|
||
android:resource="@style/NormalTheme"
|
||
/>
|
||
<intent-filter>
|
||
<action android:name="android.intent.action.MAIN"/>
|
||
<category android:name="android.intent.category.LAUNCHER"/>
|
||
</intent-filter>
|
||
</activity>
|
||
<!-- Don't delete the meta-data below.
|
||
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
|
||
<meta-data
|
||
android:name="flutterEmbedding"
|
||
android:value="2" />
|
||
</application>
|
||
<!-- Required to query activities that can process text, see:
|
||
https://developer.android.com/training/package-visibility and
|
||
https://developer.android.com/reference/android/content/Intent#ACTION_PROCESS_TEXT.
|
||
|
||
In particular, this is used by the Flutter engine in io.flutter.plugin.text.ProcessTextPlugin. -->
|
||
<queries>
|
||
<intent>
|
||
<action android:name="android.intent.action.PROCESS_TEXT"/>
|
||
<data android:mimeType="text/plain"/>
|
||
</intent>
|
||
<!-- Ermöglicht canLaunchUrl()-Prüfung und Öffnen von tel:-Intents
|
||
ab Android 11 (Package Visibility), siehe docs/plan.md Abschnitt 7. -->
|
||
<intent>
|
||
<action android:name="android.intent.action.DIAL" />
|
||
<data android:scheme="tel" />
|
||
</intent>
|
||
</queries>
|
||
</manifest>
|