From 3d245d73992d363daa884b5e245e9ef936ad5c10 Mon Sep 17 00:00:00 2001 From: M66B Date: Fri, 15 May 2026 23:10:17 +0200 Subject: [PATCH] Added access local network permission for non Play Store builds https://developer.android.com/privacy-and-security/local-network-permission --- FAQ.md | 1 + app/src/amazon/AndroidManifest.xml | 9 ++++++--- app/src/debug/AndroidManifest.xml | 3 +++ app/src/fdroid/AndroidManifest.xml | 3 +++ app/src/github/AndroidManifest.xml | 3 +++ app/src/large/AndroidManifest.xml | 3 +++ app/src/main/java/eu/faircode/email/Helper.java | 2 ++ index.html | 1 + 8 files changed, 22 insertions(+), 3 deletions(-) diff --git a/FAQ.md b/FAQ.md index d279229d10..19db2d43fe 100644 --- a/FAQ.md +++ b/FAQ.md @@ -476,6 +476,7 @@ The following Android permissions are **required**: * *ask to ignore battery optimizations* (REQUEST_IGNORE_BATTERY_OPTIMIZATIONS): to disable battery optimizations, please see [this FAQ](#faq175) for more information * *allow the app to show notifications* (POST_NOTIFICATIONS): to show new message notifications and (account) warnings and errors (Android 13 and later only) * *Google Play (in-app) billing service* (BILLING): for in-app purchases +* *Nearby devices* (ACCESS_LOCAL_NETWORK): to access email servers via local network addresses (Android 17 and later only; not available in the Play Store release)
diff --git a/app/src/amazon/AndroidManifest.xml b/app/src/amazon/AndroidManifest.xml index 80f185cad7..ea596d8f98 100644 --- a/app/src/amazon/AndroidManifest.xml +++ b/app/src/amazon/AndroidManifest.xml @@ -4,6 +4,9 @@ android:installLocation="internalOnly"> + @@ -499,8 +502,8 @@ + android:exported="true" + android:permission="com.amazon.inapp.purchasing.Permission.NOTIFY"> diff --git a/app/src/debug/AndroidManifest.xml b/app/src/debug/AndroidManifest.xml index 050fdb3420..184e59b1d7 100644 --- a/app/src/debug/AndroidManifest.xml +++ b/app/src/debug/AndroidManifest.xml @@ -4,6 +4,9 @@ android:installLocation="internalOnly"> + diff --git a/app/src/fdroid/AndroidManifest.xml b/app/src/fdroid/AndroidManifest.xml index bc3b6189ce..9c2fe721e3 100644 --- a/app/src/fdroid/AndroidManifest.xml +++ b/app/src/fdroid/AndroidManifest.xml @@ -4,6 +4,9 @@ android:installLocation="internalOnly"> + diff --git a/app/src/github/AndroidManifest.xml b/app/src/github/AndroidManifest.xml index 433abd0c8f..955d72aee9 100644 --- a/app/src/github/AndroidManifest.xml +++ b/app/src/github/AndroidManifest.xml @@ -4,6 +4,9 @@ android:installLocation="internalOnly"> + diff --git a/app/src/large/AndroidManifest.xml b/app/src/large/AndroidManifest.xml index 433abd0c8f..955d72aee9 100644 --- a/app/src/large/AndroidManifest.xml +++ b/app/src/large/AndroidManifest.xml @@ -4,6 +4,9 @@ android:installLocation="internalOnly"> + diff --git a/app/src/main/java/eu/faircode/email/Helper.java b/app/src/main/java/eu/faircode/email/Helper.java index 7e4c6f7705..98ca61febb 100644 --- a/app/src/main/java/eu/faircode/email/Helper.java +++ b/app/src/main/java/eu/faircode/email/Helper.java @@ -512,6 +512,8 @@ public class Helper { permissions.add(Manifest.permission.READ_CONTACTS); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) permissions.add(Manifest.permission.POST_NOTIFICATIONS); + if (!BuildConfig.PLAY_STORE_RELEASE) + permissions.add(Manifest.permission.ACCESS_LOCAL_NETWORK); try { PackageManager pm = context.getPackageManager(); diff --git a/index.html b/index.html index 8c60ccdc1f..7b0dc390f4 100644 --- a/index.html +++ b/index.html @@ -460,6 +460,7 @@
  • ask to ignore battery optimizations (REQUEST_IGNORE_BATTERY_OPTIMIZATIONS): to disable battery optimizations, please see this FAQ for more information
  • allow the app to show notifications (POST_NOTIFICATIONS): to show new message notifications and (account) warnings and errors (Android 13 and later only)
  • Google Play (in-app) billing service (BILLING): for in-app purchases
  • +
  • Nearby devices (ACCESS_LOCAL_NETWORK): to access email servers via local network addresses (Android 17 and later only; not available in the Play Store release)

  • The following Android permissions are optional: