docs: publish channels: main api

This commit is contained in:
github-actions[bot] committed 2026-08-26 12:21:09 +00:00
1 parent d7b761b380
commit d1fdb2356b
167 files changed
+1646 -523

No files matched your search

@@ -94,7 +94,7 @@
<div class="cover ">
<h1 class="cover"><span>Connection</span><wbr><span>Action</span><wbr><span><span>Button</span></span></h1>
</div>
<div class="platform-hinted " data-platform-hinted="data-platform-hinted"><div class="content sourceset-dependent-content" data-active="" data-togglable=":feature:connections/commonMain"><div class="symbol monospace"><div class="block"><div class="block"><span class="token annotation builtin">@</span><a href="https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable.html"><span class="token annotation builtin">Composable</span></a></div></div><span class="token keyword">fun </span><a href="-connection-action-button.html"><span class="token function">ConnectionActionButton</span></a><span class="token punctuation">(</span><span class="parameters "><span class="parameter ">onClick<span class="token operator">: </span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator"> -&gt; </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html">Unit</a><span class="token punctuation">, </span></span><span class="parameter ">icon<span class="token operator">: </span><a href="https://developer.android.com/reference/kotlin/androidx/compose/ui/graphics/vector/ImageVector.html">ImageVector</a><span class="token punctuation">, </span></span><span class="parameter ">text<span class="token operator">: </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html">String</a><span class="token punctuation">, </span></span><span class="parameter ">modifier<span class="token operator">: </span><a href="https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier.html">Modifier</a><span class="token operator"> = </span>Modifier<span class="token punctuation">, </span></span><span class="parameter ">style<span class="token operator">: </span><a href="-connection-action-button-style/index.html">ConnectionActionButtonStyle</a><span class="token operator"> = </span>ConnectionActionButtonStyle.Filled<span class="token punctuation">, </span></span><span class="parameter ">enabled<span class="token operator">: </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html">Boolean</a><span class="token operator"> = </span><span class="token boolean">true</span><span class="token punctuation">, </span></span><span class="parameter ">iconContentDescription<span class="token operator">: </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html">String</a><span class="token operator">?</span><span class="token operator"> = </span>null</span></span><span class="token punctuation">)</span><span class="source-link-wrapper"><span class="source-link" data-element-type="source-link">(<a href="https://github.com/meshtastic/Meshtastic-Android/blob/main/feature/connections/src/commonMain/kotlin/org/meshtastic/feature/connections/ui/components/ConnectionActionButton.kt#L44">source</a>)</span></span></div><p class="paragraph">Shared "icon + label" button used throughout the Connections screen. Centralises M3 sizing conventions (<a href="https://developer.android.com/reference/kotlin/androidx/compose/material3/ButtonDefaults.html#iconsize">ButtonDefaults.IconSize</a>, <a href="https://developer.android.com/reference/kotlin/androidx/compose/material3/ButtonDefaults.html#iconspacing">ButtonDefaults.IconSpacing</a>, and the variant-appropriate <code class="lang-kotlin">*WithIconContentPadding</code>) so every scan / add / empty-state affordance renders identically.</p><h4 class="tableheader">Parameters</h4><div class="table"><div class="table-row table-row_content" data-filterable-current=":feature:connections/commonMain" data-filterable-set=":feature:connections/commonMain"><div class="main-subrow keyValue "><div class=""><span class="inline-flex"><div><u><span>icon</span><wbr><span>Content</span><wbr><span><span>Description</span></span></u></div></span></div><div><div class="title"><p class="paragraph">accessibility label for the leading icon. Defaults to <code class="lang-kotlin">null</code> because the visible <a href="-connection-action-button.html">text</a> usually describes the action; override when the icon carries information the text does not.</p></div></div></div></div></div></div></div>
<div class="platform-hinted " data-platform-hinted="data-platform-hinted"><div class="content sourceset-dependent-content" data-active="" data-togglable=":feature:connections/commonMain"><div class="symbol monospace"><div class="block"><div class="block"><span class="token annotation builtin">@</span><a href="https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable.html"><span class="token annotation builtin">Composable</span></a></div></div><span class="token keyword">fun </span><a href="-connection-action-button.html"><span class="token function">ConnectionActionButton</span></a><span class="token punctuation">(</span><span class="parameters "><span class="parameter ">onClick<span class="token operator">: </span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator"> -&gt; </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html">Unit</a><span class="token punctuation">, </span></span><span class="parameter ">icon<span class="token operator">: </span><a href="https://developer.android.com/reference/kotlin/androidx/compose/ui/graphics/vector/ImageVector.html">ImageVector</a><span class="token punctuation">, </span></span><span class="parameter ">text<span class="token operator">: </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html">String</a><span class="token punctuation">, </span></span><span class="parameter ">modifier<span class="token operator">: </span><a href="https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier.html">Modifier</a><span class="token operator"> = </span>Modifier<span class="token punctuation">, </span></span><span class="parameter ">style<span class="token operator">: </span><a href="-connection-action-button-style/index.html">ConnectionActionButtonStyle</a><span class="token operator"> = </span>ConnectionActionButtonStyle.Filled<span class="token punctuation">, </span></span><span class="parameter ">enabled<span class="token operator">: </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html">Boolean</a><span class="token operator"> = </span><span class="token boolean">true</span><span class="token punctuation">, </span></span><span class="parameter ">iconContentDescription<span class="token operator">: </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html">String</a><span class="token operator">?</span><span class="token operator"> = </span>null</span></span><span class="token punctuation">)</span><span class="source-link-wrapper"><span class="source-link" data-element-type="source-link">(<a href="https://github.com/meshtastic/Meshtastic-Android/blob/main/feature/connections/src/commonMain/kotlin/org/meshtastic/feature/connections/ui/components/ConnectionActionButton.kt#L44">source</a>)</span></span></div><p class="paragraph">Shared "icon + label" button used throughout the Connections screen. Centralises M3 sizing conventions (<a href="https://developer.android.com/reference/kotlin/androidx/compose/material3/ButtonDefaults.html#IconSize">ButtonDefaults.IconSize</a>, <a href="https://developer.android.com/reference/kotlin/androidx/compose/material3/ButtonDefaults.html#IconSpacing">ButtonDefaults.IconSpacing</a>, and the variant-appropriate <code class="lang-kotlin">*WithIconContentPadding</code>) so every scan / add / empty-state affordance renders identically.</p><h4 class="tableheader">Parameters</h4><div class="table"><div class="table-row table-row_content" data-filterable-current=":feature:connections/commonMain" data-filterable-set=":feature:connections/commonMain"><div class="main-subrow keyValue "><div class=""><span class="inline-flex"><div><u><span>icon</span><wbr><span>Content</span><wbr><span><span>Description</span></span></u></div></span></div><div><div class="title"><p class="paragraph">accessibility label for the leading icon. Defaults to <code class="lang-kotlin">null</code> because the visible <a href="-connection-action-button.html">text</a> usually describes the action; override when the icon carries information the text does not.</p></div></div></div></div></div></div></div>
</div>
<div class="footer">
<div class="footer--container">
@@ -158,7 +158,7 @@
</span></span></div>
<div>
<div class="title">
<div class="platform-hinted " data-platform-hinted="data-platform-hinted"><div class="content sourceset-dependent-content" data-active="" data-togglable=":feature:connections/commonMain"><div class="symbol monospace"><div class="block"><div class="block"><span class="token annotation builtin">@</span><a href="https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable.html"><span class="token annotation builtin">Composable</span></a></div></div><span class="token keyword">fun </span><a href="-connection-action-button.html"><span class="token function">ConnectionActionButton</span></a><span class="token punctuation">(</span><span class="parameters "><span class="parameter ">onClick<span class="token operator">: </span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator"> -&gt; </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html">Unit</a><span class="token punctuation">, </span></span><span class="parameter ">icon<span class="token operator">: </span><a href="https://developer.android.com/reference/kotlin/androidx/compose/ui/graphics/vector/ImageVector.html">ImageVector</a><span class="token punctuation">, </span></span><span class="parameter ">text<span class="token operator">: </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html">String</a><span class="token punctuation">, </span></span><span class="parameter ">modifier<span class="token operator">: </span><a href="https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier.html">Modifier</a><span class="token operator"> = </span>Modifier<span class="token punctuation">, </span></span><span class="parameter ">style<span class="token operator">: </span><a href="-connection-action-button-style/index.html">ConnectionActionButtonStyle</a><span class="token operator"> = </span>ConnectionActionButtonStyle.Filled<span class="token punctuation">, </span></span><span class="parameter ">enabled<span class="token operator">: </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html">Boolean</a><span class="token operator"> = </span><span class="token boolean">true</span><span class="token punctuation">, </span></span><span class="parameter ">iconContentDescription<span class="token operator">: </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html">String</a><span class="token operator">?</span><span class="token operator"> = </span>null</span></span><span class="token punctuation">)</span></div><div class="brief "><p class="paragraph">Shared "icon + label" button used throughout the Connections screen. Centralises M3 sizing conventions (<a href="https://developer.android.com/reference/kotlin/androidx/compose/material3/ButtonDefaults.html#iconsize">ButtonDefaults.IconSize</a>, <a href="https://developer.android.com/reference/kotlin/androidx/compose/material3/ButtonDefaults.html#iconspacing">ButtonDefaults.IconSpacing</a>, and the variant-appropriate <code class="lang-kotlin">*WithIconContentPadding</code>) so every scan / add / empty-state affordance renders identically.</p></div></div></div>
<div class="platform-hinted " data-platform-hinted="data-platform-hinted"><div class="content sourceset-dependent-content" data-active="" data-togglable=":feature:connections/commonMain"><div class="symbol monospace"><div class="block"><div class="block"><span class="token annotation builtin">@</span><a href="https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable.html"><span class="token annotation builtin">Composable</span></a></div></div><span class="token keyword">fun </span><a href="-connection-action-button.html"><span class="token function">ConnectionActionButton</span></a><span class="token punctuation">(</span><span class="parameters "><span class="parameter ">onClick<span class="token operator">: </span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator"> -&gt; </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html">Unit</a><span class="token punctuation">, </span></span><span class="parameter ">icon<span class="token operator">: </span><a href="https://developer.android.com/reference/kotlin/androidx/compose/ui/graphics/vector/ImageVector.html">ImageVector</a><span class="token punctuation">, </span></span><span class="parameter ">text<span class="token operator">: </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html">String</a><span class="token punctuation">, </span></span><span class="parameter ">modifier<span class="token operator">: </span><a href="https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier.html">Modifier</a><span class="token operator"> = </span>Modifier<span class="token punctuation">, </span></span><span class="parameter ">style<span class="token operator">: </span><a href="-connection-action-button-style/index.html">ConnectionActionButtonStyle</a><span class="token operator"> = </span>ConnectionActionButtonStyle.Filled<span class="token punctuation">, </span></span><span class="parameter ">enabled<span class="token operator">: </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html">Boolean</a><span class="token operator"> = </span><span class="token boolean">true</span><span class="token punctuation">, </span></span><span class="parameter ">iconContentDescription<span class="token operator">: </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html">String</a><span class="token operator">?</span><span class="token operator"> = </span>null</span></span><span class="token punctuation">)</span></div><div class="brief "><p class="paragraph">Shared "icon + label" button used throughout the Connections screen. Centralises M3 sizing conventions (<a href="https://developer.android.com/reference/kotlin/androidx/compose/material3/ButtonDefaults.html#IconSize">ButtonDefaults.IconSize</a>, <a href="https://developer.android.com/reference/kotlin/androidx/compose/material3/ButtonDefaults.html#IconSpacing">ButtonDefaults.IconSpacing</a>, and the variant-appropriate <code class="lang-kotlin">*WithIconContentPadding</code>) so every scan / add / empty-state affordance renders identically.</p></div></div></div>
</div>
</div>
</div>
File diff suppressed because one or more lines are too long.
File diff suppressed because one or more lines are too long.
File diff suppressed because one or more lines are too long.
File diff suppressed because one or more lines are too long.
File diff suppressed because one or more lines are too long.
File diff suppressed because one or more lines are too long.
File diff suppressed because one or more lines are too long.
File diff suppressed because one or more lines are too long.
File diff suppressed because one or more lines are too long.
File diff suppressed because one or more lines are too long.
File diff suppressed because one or more lines are too long.
File diff suppressed because one or more lines are too long.
File diff suppressed because one or more lines are too long.
File diff suppressed because one or more lines are too long.
File diff suppressed because one or more lines are too long.
File diff suppressed because one or more lines are too long.
File diff suppressed because one or more lines are too long.
File diff suppressed because one or more lines are too long.
+12 -1
View File
@@ -29,7 +29,18 @@ Use the transport selector — a segmented button row below the connection card
![Transport selector](../../assets/screenshots/connections_transport_filters.png)
&gt; 💡 **Tip:** If your device doesn't appear, check that Bluetooth and Location permissions are granted, and that the radio is not already connected to another device.
&gt; 💡 **Tip:** If your device doesn't appear, check that the radio is not already connected to another device or out of range.
The screen names anything on the app's side that is blocking a scan, with the fix attached:
What you see | What it means |
--------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
A card asking for **Nearby devices** | The permission has not been granted. **Grant permission** requests it; once Android stops prompting, the button becomes **Open settings**. |
**Bluetooth is off** | The adapter is disabled — the card opens Bluetooth settings. |
**Bluetooth scanning also needs location services** | Android 11 and older only: the permission is held but the system location toggle is off. |
No card, empty list | Nothing on this side is blocking the scan — the radio is out of range, off, or already connected elsewhere. |
Tapping **Scan** after you have declined the permission once explains what it is for before asking again, and lets you decline again without being cornered.
### Connection Status
+20 -4
View File
@@ -13,7 +13,7 @@ Welcome to Meshtastic! This guide walks you through the initial setup of the Mes
## First Launch
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or you can skip and configure permissions later in Android settings.
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or skipped — nothing here is a one-time offer. Every permission can be reviewed and granted later from **Settings → Permissions** inside the app.
### Welcome Screen
@@ -42,7 +42,7 @@ Grant both permissions when prompted. Without Bluetooth, you'll need to use USB
### Location Permission
&gt; ⚠️ **Why is location required for Bluetooth?** Android requires location permission to discover nearby Bluetooth Low Energy devices. This is an Android system requirement, not a Meshtastic-specific choice.
&gt; ⚠️ **Is location required for Bluetooth?** On **Android 11 and older**, yes — those releases treat a Bluetooth scan as a location capability, so the app asks for Location instead of "Nearby devices", and system **Location Services** must also be switched on for a scan to return anything. There you will see **one** location step rather than two, on the Bluetooth screen, because it is a single system permission — and asking twice for it would push you toward the point where Android stops offering the dialog at all (a second denial on Android 11; the "Don't ask again" checkbox on Android 10 and older). On **Android 12 and newer** the two are separate: "Nearby devices" is declared `neverForLocation`, and declining Location does not stop you finding or connecting to a radio.
Meshtastic also uses your location for:
@@ -55,7 +55,7 @@ Grant **"While using the app"** or **"Always"** depending on your preference:
- **While using the app** — position updates only when the app is open
- **Always** — enables background position updates for always-on mesh presence
If denied, Bluetooth scanning will not function and your node will not report a position.
Declining leaves the rest of the app working: on Android 12 and newer, Bluetooth is unaffected and only the map position and position sharing are disabled. On Android 11 and older, Bluetooth scanning also stops, because that is the permission Android gates it behind.
### Notifications Permission
@@ -76,11 +76,27 @@ On supported devices, the app may request permission for critical alerts:
- You can **skip** this step if you don't need breakthrough notifications
- Configure or revoke later in Android notification settings
### Reviewing permissions later
**Settings → Permissions** summarizes where every runtime permission stands. It reads _All allowed_ when nothing needs you, and names the count when something does — opening itself automatically in that case. Tap the row to see the full list at any time:
State | What tapping the row does |
------------------------------------------- | -------------------------------------------------------------------------------------------- |
**Allowed** | Opens the system page, so you can review or revoke it |
**Not asked yet** | Requests it |
**Denied — tap to allow** | Explains what the permission is for, then asks again if you agree |
**Blocked — tap to open system settings** | Android will no longer show its dialog, so this opens the page where you can turn it back on |
**Not required on this version of Android** | Nothing — the permission does not exist on your device |
This matters most for notifications. The app used to ask for them in exactly one place — the setup flow — so declining there meant no message, new-node, or low-battery alerts, with nothing in the app that could ask again. Android itself stops showing the dialog once you have declined firmly (a second denial on Android 11 and newer), at which point this row switches to **Blocked** and sends you to the system settings page instead.
## After Setup
Once permissions are granted, the app transitions to the main interface. Your first action should be connecting to a Meshtastic radio — see [Connections](connections) for detailed instructions.
&gt; 💡 **Tip:** If you skipped any permissions during setup, you can grant them later through **Android Settings → Apps → Meshtastic → Permissions**. The app will prompt you again if a missing permission blocks a feature you try to use.
&gt; 💡 **Tip:** If you skipped any permissions during setup, open **Settings → Permissions** in the app. Every runtime permission is listed there with its current state and a way back to it — including notifications, which the system will not prompt for a second time on its own.
Features also ask in context. Tapping **Scan** on the Connections screen with Bluetooth permission missing explains what it is for and offers to request it; once Android stops prompting, the same control opens the system settings page instead of doing nothing.
## What's Next?
+12 -1
View File
@@ -29,7 +29,18 @@ Use the transport selector — a segmented button row below the connection card
![Transport selector](../../assets/screenshots/connections_transport_filters.png)
&gt; 💡 **Tip:** If your device doesn't appear, check that Bluetooth and Location permissions are granted, and that the radio is not already connected to another device.
&gt; 💡 **Tip:** If your device doesn't appear, check that the radio is not already connected to another device or out of range.
The screen names anything on the app's side that is blocking a scan, with the fix attached:
What you see | What it means |
--------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
A card asking for **Nearby devices** | The permission has not been granted. **Grant permission** requests it; once Android stops prompting, the button becomes **Open settings**. |
**Bluetooth is off** | The adapter is disabled — the card opens Bluetooth settings. |
**Bluetooth scanning also needs location services** | Android 11 and older only: the permission is held but the system location toggle is off. |
No card, empty list | Nothing on this side is blocking the scan — the radio is out of range, off, or already connected elsewhere. |
Tapping **Scan** after you have declined the permission once explains what it is for before asking again, and lets you decline again without being cornered.
### Connection Status
+20 -4
View File
@@ -13,7 +13,7 @@ Welcome to Meshtastic! This guide walks you through the initial setup of the Mes
## First Launch
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or you can skip and configure permissions later in Android settings.
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or skipped — nothing here is a one-time offer. Every permission can be reviewed and granted later from **Settings → Permissions** inside the app.
### Welcome Screen
@@ -42,7 +42,7 @@ Grant both permissions when prompted. Without Bluetooth, you'll need to use USB
### Location Permission
&gt; ⚠️ **Why is location required for Bluetooth?** Android requires location permission to discover nearby Bluetooth Low Energy devices. This is an Android system requirement, not a Meshtastic-specific choice.
&gt; ⚠️ **Is location required for Bluetooth?** On **Android 11 and older**, yes — those releases treat a Bluetooth scan as a location capability, so the app asks for Location instead of "Nearby devices", and system **Location Services** must also be switched on for a scan to return anything. There you will see **one** location step rather than two, on the Bluetooth screen, because it is a single system permission — and asking twice for it would push you toward the point where Android stops offering the dialog at all (a second denial on Android 11; the "Don't ask again" checkbox on Android 10 and older). On **Android 12 and newer** the two are separate: "Nearby devices" is declared `neverForLocation`, and declining Location does not stop you finding or connecting to a radio.
Meshtastic also uses your location for:
@@ -55,7 +55,7 @@ Grant **"While using the app"** or **"Always"** depending on your preference:
- **While using the app** — position updates only when the app is open
- **Always** — enables background position updates for always-on mesh presence
If denied, Bluetooth scanning will not function and your node will not report a position.
Declining leaves the rest of the app working: on Android 12 and newer, Bluetooth is unaffected and only the map position and position sharing are disabled. On Android 11 and older, Bluetooth scanning also stops, because that is the permission Android gates it behind.
### Notifications Permission
@@ -76,11 +76,27 @@ On supported devices, the app may request permission for critical alerts:
- You can **skip** this step if you don't need breakthrough notifications
- Configure or revoke later in Android notification settings
### Reviewing permissions later
**Settings → Permissions** summarizes where every runtime permission stands. It reads _All allowed_ when nothing needs you, and names the count when something does — opening itself automatically in that case. Tap the row to see the full list at any time:
State | What tapping the row does |
------------------------------------------- | -------------------------------------------------------------------------------------------- |
**Allowed** | Opens the system page, so you can review or revoke it |
**Not asked yet** | Requests it |
**Denied — tap to allow** | Explains what the permission is for, then asks again if you agree |
**Blocked — tap to open system settings** | Android will no longer show its dialog, so this opens the page where you can turn it back on |
**Not required on this version of Android** | Nothing — the permission does not exist on your device |
This matters most for notifications. The app used to ask for them in exactly one place — the setup flow — so declining there meant no message, new-node, or low-battery alerts, with nothing in the app that could ask again. Android itself stops showing the dialog once you have declined firmly (a second denial on Android 11 and newer), at which point this row switches to **Blocked** and sends you to the system settings page instead.
## After Setup
Once permissions are granted, the app transitions to the main interface. Your first action should be connecting to a Meshtastic radio — see [Connections](connections) for detailed instructions.
&gt; 💡 **Tip:** If you skipped any permissions during setup, you can grant them later through **Android Settings → Apps → Meshtastic → Permissions**. The app will prompt you again if a missing permission blocks a feature you try to use.
&gt; 💡 **Tip:** If you skipped any permissions during setup, open **Settings → Permissions** in the app. Every runtime permission is listed there with its current state and a way back to it — including notifications, which the system will not prompt for a second time on its own.
Features also ask in context. Tapping **Scan** on the Connections screen with Bluetooth permission missing explains what it is for and offers to request it; once Android stops prompting, the same control opens the system settings page instead of doing nothing.
## What's Next?
+12 -1
View File
@@ -29,7 +29,18 @@ Use the transport selector — a segmented button row below the connection card
![Transport selector](../../assets/screenshots/connections_transport_filters.png)
&gt; 💡 **Tip:** If your device doesn't appear, check that Bluetooth and Location permissions are granted, and that the radio is not already connected to another device.
&gt; 💡 **Tip:** If your device doesn't appear, check that the radio is not already connected to another device or out of range.
The screen names anything on the app's side that is blocking a scan, with the fix attached:
What you see | What it means |
--------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
A card asking for **Nearby devices** | The permission has not been granted. **Grant permission** requests it; once Android stops prompting, the button becomes **Open settings**. |
**Bluetooth is off** | The adapter is disabled — the card opens Bluetooth settings. |
**Bluetooth scanning also needs location services** | Android 11 and older only: the permission is held but the system location toggle is off. |
No card, empty list | Nothing on this side is blocking the scan — the radio is out of range, off, or already connected elsewhere. |
Tapping **Scan** after you have declined the permission once explains what it is for before asking again, and lets you decline again without being cornered.
### Състояние на връзката
+20 -4
View File
@@ -13,7 +13,7 @@
## First Launch
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or you can skip and configure permissions later in Android settings.
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or skipped — nothing here is a one-time offer. Every permission can be reviewed and granted later from **Settings → Permissions** inside the app.
### Welcome Screen
@@ -42,7 +42,7 @@ Grant both permissions when prompted. Without Bluetooth, you'll need to use USB
### Location Permission
&gt; ⚠️ **Why is location required for Bluetooth?** Android requires location permission to discover nearby Bluetooth Low Energy devices. This is an Android system requirement, not a Meshtastic-specific choice.
&gt; ⚠️ **Is location required for Bluetooth?** On **Android 11 and older**, yes — those releases treat a Bluetooth scan as a location capability, so the app asks for Location instead of "Nearby devices", and system **Location Services** must also be switched on for a scan to return anything. There you will see **one** location step rather than two, on the Bluetooth screen, because it is a single system permission — and asking twice for it would push you toward the point where Android stops offering the dialog at all (a second denial on Android 11; the "Don't ask again" checkbox on Android 10 and older). On **Android 12 and newer** the two are separate: "Nearby devices" is declared `neverForLocation`, and declining Location does not stop you finding or connecting to a radio.
Meshtastic also uses your location for:
@@ -55,7 +55,7 @@ Grant **"While using the app"** or **"Always"** depending on your preference:
- **While using the app** — position updates only when the app is open
- **Always** — enables background position updates for always-on mesh presence
If denied, Bluetooth scanning will not function and your node will not report a position.
Declining leaves the rest of the app working: on Android 12 and newer, Bluetooth is unaffected and only the map position and position sharing are disabled. On Android 11 and older, Bluetooth scanning also stops, because that is the permission Android gates it behind.
### Notifications Permission
@@ -76,11 +76,27 @@ On supported devices, the app may request permission for critical alerts:
- You can **skip** this step if you don't need breakthrough notifications
- Configure or revoke later in Android notification settings
### Reviewing permissions later
**Settings → Permissions** summarizes where every runtime permission stands. It reads _All allowed_ when nothing needs you, and names the count when something does — opening itself automatically in that case. Tap the row to see the full list at any time:
Състояние | What tapping the row does |
------------------------------------------- | -------------------------------------------------------------------------------------------- |
**Allowed** | Opens the system page, so you can review or revoke it |
**Not asked yet** | Requests it |
**Denied — tap to allow** | Explains what the permission is for, then asks again if you agree |
**Blocked — tap to open system settings** | Android will no longer show its dialog, so this opens the page where you can turn it back on |
**Not required on this version of Android** | Nothing — the permission does not exist on your device |
This matters most for notifications. The app used to ask for them in exactly one place — the setup flow — so declining there meant no message, new-node, or low-battery alerts, with nothing in the app that could ask again. Android itself stops showing the dialog once you have declined firmly (a second denial on Android 11 and newer), at which point this row switches to **Blocked** and sends you to the system settings page instead.
## After Setup
Once permissions are granted, the app transitions to the main interface. Your first action should be connecting to a Meshtastic radio — see [Connections](connections) for detailed instructions.
&gt; 💡 **Tip:** If you skipped any permissions during setup, you can grant them later through **Android Settings → Apps → Meshtastic → Permissions**. The app will prompt you again if a missing permission blocks a feature you try to use.
&gt; 💡 **Tip:** If you skipped any permissions during setup, open **Settings → Permissions** in the app. Every runtime permission is listed there with its current state and a way back to it — including notifications, which the system will not prompt for a second time on its own.
Features also ask in context. Tapping **Scan** on the Connections screen with Bluetooth permission missing explains what it is for and offers to request it; once Android stops prompting, the same control opens the system settings page instead of doing nothing.
## What's Next?
+12 -1
View File
@@ -29,7 +29,18 @@ Use the transport selector — a segmented button row below the connection card
![Transport selector](../../assets/screenshots/connections_transport_filters.png)
&gt; 💡 **Tip:** If your device doesn't appear, check that Bluetooth and Location permissions are granted, and that the radio is not already connected to another device.
&gt; 💡 **Tip:** If your device doesn't appear, check that the radio is not already connected to another device or out of range.
The screen names anything on the app's side that is blocking a scan, with the fix attached:
What you see | What it means |
--------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
A card asking for **Nearby devices** | The permission has not been granted. **Grant permission** requests it; once Android stops prompting, the button becomes **Open settings**. |
**Bluetooth is off** | The adapter is disabled — the card opens Bluetooth settings. |
**Bluetooth scanning also needs location services** | Android 11 and older only: the permission is held but the system location toggle is off. |
No card, empty list | Nothing on this side is blocking the scan — the radio is out of range, off, or already connected elsewhere. |
Tapping **Scan** after you have declined the permission once explains what it is for before asking again, and lets you decline again without being cornered.
### Connection Status
+20 -4
View File
@@ -13,7 +13,7 @@ Welcome to Meshtastic! This guide walks you through the initial setup of the Mes
## First Launch
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or you can skip and configure permissions later in Android settings.
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or skipped — nothing here is a one-time offer. Every permission can be reviewed and granted later from **Settings → Permissions** inside the app.
### Welcome Screen
@@ -42,7 +42,7 @@ Grant both permissions when prompted. Without Bluetooth, you'll need to use USB
### Location Permission
&gt; ⚠️ **Why is location required for Bluetooth?** Android requires location permission to discover nearby Bluetooth Low Energy devices. This is an Android system requirement, not a Meshtastic-specific choice.
&gt; ⚠️ **Is location required for Bluetooth?** On **Android 11 and older**, yes — those releases treat a Bluetooth scan as a location capability, so the app asks for Location instead of "Nearby devices", and system **Location Services** must also be switched on for a scan to return anything. There you will see **one** location step rather than two, on the Bluetooth screen, because it is a single system permission — and asking twice for it would push you toward the point where Android stops offering the dialog at all (a second denial on Android 11; the "Don't ask again" checkbox on Android 10 and older). On **Android 12 and newer** the two are separate: "Nearby devices" is declared `neverForLocation`, and declining Location does not stop you finding or connecting to a radio.
Meshtastic also uses your location for:
@@ -55,7 +55,7 @@ Grant **"While using the app"** or **"Always"** depending on your preference:
- **While using the app** — position updates only when the app is open
- **Always** — enables background position updates for always-on mesh presence
If denied, Bluetooth scanning will not function and your node will not report a position.
Declining leaves the rest of the app working: on Android 12 and newer, Bluetooth is unaffected and only the map position and position sharing are disabled. On Android 11 and older, Bluetooth scanning also stops, because that is the permission Android gates it behind.
### Notifications Permission
@@ -76,11 +76,27 @@ On supported devices, the app may request permission for critical alerts:
- You can **skip** this step if you don't need breakthrough notifications
- Configure or revoke later in Android notification settings
### Reviewing permissions later
**Settings → Permissions** summarizes where every runtime permission stands. It reads _All allowed_ when nothing needs you, and names the count when something does — opening itself automatically in that case. Tap the row to see the full list at any time:
State | What tapping the row does |
------------------------------------------- | -------------------------------------------------------------------------------------------- |
**Allowed** | Opens the system page, so you can review or revoke it |
**Not asked yet** | Requests it |
**Denied — tap to allow** | Explains what the permission is for, then asks again if you agree |
**Blocked — tap to open system settings** | Android will no longer show its dialog, so this opens the page where you can turn it back on |
**Not required on this version of Android** | Nothing — the permission does not exist on your device |
This matters most for notifications. The app used to ask for them in exactly one place — the setup flow — so declining there meant no message, new-node, or low-battery alerts, with nothing in the app that could ask again. Android itself stops showing the dialog once you have declined firmly (a second denial on Android 11 and newer), at which point this row switches to **Blocked** and sends you to the system settings page instead.
## After Setup
Once permissions are granted, the app transitions to the main interface. Your first action should be connecting to a Meshtastic radio — see [Connections](connections) for detailed instructions.
&gt; 💡 **Tip:** If you skipped any permissions during setup, you can grant them later through **Android Settings → Apps → Meshtastic → Permissions**. The app will prompt you again if a missing permission blocks a feature you try to use.
&gt; 💡 **Tip:** If you skipped any permissions during setup, open **Settings → Permissions** in the app. Every runtime permission is listed there with its current state and a way back to it — including notifications, which the system will not prompt for a second time on its own.
Features also ask in context. Tapping **Scan** on the Connections screen with Bluetooth permission missing explains what it is for and offers to request it; once Android stops prompting, the same control opens the system settings page instead of doing nothing.
## What's Next?
+12 -1
View File
@@ -29,7 +29,18 @@ Use the transport selector — a segmented button row below the connection card
![Transport selector](../../assets/screenshots/connections_transport_filters.png)
&gt; 💡 **Tip:** If your device doesn't appear, check that Bluetooth and Location permissions are granted, and that the radio is not already connected to another device.
&gt; 💡 **Tip:** If your device doesn't appear, check that the radio is not already connected to another device or out of range.
The screen names anything on the app's side that is blocking a scan, with the fix attached:
What you see | What it means |
--------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
A card asking for **Nearby devices** | The permission has not been granted. **Grant permission** requests it; once Android stops prompting, the button becomes **Open settings**. |
**Bluetooth is off** | The adapter is disabled — the card opens Bluetooth settings. |
**Bluetooth scanning also needs location services** | Android 11 and older only: the permission is held but the system location toggle is off. |
No card, empty list | Nothing on this side is blocking the scan — the radio is out of range, off, or already connected elsewhere. |
Tapping **Scan** after you have declined the permission once explains what it is for before asking again, and lets you decline again without being cornered.
### Connection Status
+20 -4
View File
@@ -13,7 +13,7 @@ Welcome to Meshtastic! This guide walks you through the initial setup of the Mes
## First Launch
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or you can skip and configure permissions later in Android settings.
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or skipped — nothing here is a one-time offer. Every permission can be reviewed and granted later from **Settings → Permissions** inside the app.
### Welcome Screen
@@ -42,7 +42,7 @@ Grant both permissions when prompted. Without Bluetooth, you'll need to use USB
### Location Permission
&gt; ⚠️ **Why is location required for Bluetooth?** Android requires location permission to discover nearby Bluetooth Low Energy devices. This is an Android system requirement, not a Meshtastic-specific choice.
&gt; ⚠️ **Is location required for Bluetooth?** On **Android 11 and older**, yes — those releases treat a Bluetooth scan as a location capability, so the app asks for Location instead of "Nearby devices", and system **Location Services** must also be switched on for a scan to return anything. There you will see **one** location step rather than two, on the Bluetooth screen, because it is a single system permission — and asking twice for it would push you toward the point where Android stops offering the dialog at all (a second denial on Android 11; the "Don't ask again" checkbox on Android 10 and older). On **Android 12 and newer** the two are separate: "Nearby devices" is declared `neverForLocation`, and declining Location does not stop you finding or connecting to a radio.
Meshtastic also uses your location for:
@@ -55,7 +55,7 @@ Grant **"While using the app"** or **"Always"** depending on your preference:
- **While using the app** — position updates only when the app is open
- **Always** — enables background position updates for always-on mesh presence
If denied, Bluetooth scanning will not function and your node will not report a position.
Declining leaves the rest of the app working: on Android 12 and newer, Bluetooth is unaffected and only the map position and position sharing are disabled. On Android 11 and older, Bluetooth scanning also stops, because that is the permission Android gates it behind.
### Notifications Permission
@@ -76,11 +76,27 @@ On supported devices, the app may request permission for critical alerts:
- You can **skip** this step if you don't need breakthrough notifications
- Configure or revoke later in Android notification settings
### Reviewing permissions later
**Settings → Permissions** summarizes where every runtime permission stands. It reads _All allowed_ when nothing needs you, and names the count when something does — opening itself automatically in that case. Tap the row to see the full list at any time:
State | What tapping the row does |
------------------------------------------- | -------------------------------------------------------------------------------------------- |
**Allowed** | Opens the system page, so you can review or revoke it |
**Not asked yet** | Requests it |
**Denied — tap to allow** | Explains what the permission is for, then asks again if you agree |
**Blocked — tap to open system settings** | Android will no longer show its dialog, so this opens the page where you can turn it back on |
**Not required on this version of Android** | Nothing — the permission does not exist on your device |
This matters most for notifications. The app used to ask for them in exactly one place — the setup flow — so declining there meant no message, new-node, or low-battery alerts, with nothing in the app that could ask again. Android itself stops showing the dialog once you have declined firmly (a second denial on Android 11 and newer), at which point this row switches to **Blocked** and sends you to the system settings page instead.
## After Setup
Once permissions are granted, the app transitions to the main interface. Your first action should be connecting to a Meshtastic radio — see [Connections](connections) for detailed instructions.
&gt; 💡 **Tip:** If you skipped any permissions during setup, you can grant them later through **Android Settings → Apps → Meshtastic → Permissions**. The app will prompt you again if a missing permission blocks a feature you try to use.
&gt; 💡 **Tip:** If you skipped any permissions during setup, open **Settings → Permissions** in the app. Every runtime permission is listed there with its current state and a way back to it — including notifications, which the system will not prompt for a second time on its own.
Features also ask in context. Tapping **Scan** on the Connections screen with Bluetooth permission missing explains what it is for and offers to request it; once Android stops prompting, the same control opens the system settings page instead of doing nothing.
## What's Next?
+12 -1
View File
@@ -29,7 +29,18 @@ Use the transport selector — a segmented button row below the connection card
![Transport selector](../../assets/screenshots/connections_transport_filters.png)
&gt; 💡 **Tip:** If your device doesn't appear, check that Bluetooth and Location permissions are granted, and that the radio is not already connected to another device.
&gt; 💡 **Tip:** If your device doesn't appear, check that the radio is not already connected to another device or out of range.
The screen names anything on the app's side that is blocking a scan, with the fix attached:
What you see | What it means |
--------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
A card asking for **Nearby devices** | The permission has not been granted. **Grant permission** requests it; once Android stops prompting, the button becomes **Open settings**. |
**Bluetooth is off** | The adapter is disabled — the card opens Bluetooth settings. |
**Bluetooth scanning also needs location services** | Android 11 and older only: the permission is held but the system location toggle is off. |
No card, empty list | Nothing on this side is blocking the scan — the radio is out of range, off, or already connected elsewhere. |
Tapping **Scan** after you have declined the permission once explains what it is for before asking again, and lets you decline again without being cornered.
### Connection Status
+20 -4
View File
@@ -13,7 +13,7 @@ Welcome to Meshtastic! This guide walks you through the initial setup of the Mes
## First Launch
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or you can skip and configure permissions later in Android settings.
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or skipped — nothing here is a one-time offer. Every permission can be reviewed and granted later from **Settings → Permissions** inside the app.
### Welcome Screen
@@ -42,7 +42,7 @@ Grant both permissions when prompted. Without Bluetooth, you'll need to use USB
### Location Permission
&gt; ⚠️ **Why is location required for Bluetooth?** Android requires location permission to discover nearby Bluetooth Low Energy devices. This is an Android system requirement, not a Meshtastic-specific choice.
&gt; ⚠️ **Is location required for Bluetooth?** On **Android 11 and older**, yes — those releases treat a Bluetooth scan as a location capability, so the app asks for Location instead of "Nearby devices", and system **Location Services** must also be switched on for a scan to return anything. There you will see **one** location step rather than two, on the Bluetooth screen, because it is a single system permission — and asking twice for it would push you toward the point where Android stops offering the dialog at all (a second denial on Android 11; the "Don't ask again" checkbox on Android 10 and older). On **Android 12 and newer** the two are separate: "Nearby devices" is declared `neverForLocation`, and declining Location does not stop you finding or connecting to a radio.
Meshtastic also uses your location for:
@@ -55,7 +55,7 @@ Grant **"While using the app"** or **"Always"** depending on your preference:
- **While using the app** — position updates only when the app is open
- **Always** — enables background position updates for always-on mesh presence
If denied, Bluetooth scanning will not function and your node will not report a position.
Declining leaves the rest of the app working: on Android 12 and newer, Bluetooth is unaffected and only the map position and position sharing are disabled. On Android 11 and older, Bluetooth scanning also stops, because that is the permission Android gates it behind.
### Notifications Permission
@@ -76,11 +76,27 @@ On supported devices, the app may request permission for critical alerts:
- You can **skip** this step if you don't need breakthrough notifications
- Configure or revoke later in Android notification settings
### Reviewing permissions later
**Settings → Permissions** summarizes where every runtime permission stands. It reads _All allowed_ when nothing needs you, and names the count when something does — opening itself automatically in that case. Tap the row to see the full list at any time:
Status | What tapping the row does |
------------------------------------------- | -------------------------------------------------------------------------------------------- |
**Allowed** | Opens the system page, so you can review or revoke it |
**Not asked yet** | Requests it |
**Denied — tap to allow** | Explains what the permission is for, then asks again if you agree |
**Blocked — tap to open system settings** | Android will no longer show its dialog, so this opens the page where you can turn it back on |
**Not required on this version of Android** | Nothing — the permission does not exist on your device |
This matters most for notifications. The app used to ask for them in exactly one place — the setup flow — so declining there meant no message, new-node, or low-battery alerts, with nothing in the app that could ask again. Android itself stops showing the dialog once you have declined firmly (a second denial on Android 11 and newer), at which point this row switches to **Blocked** and sends you to the system settings page instead.
## After Setup
Once permissions are granted, the app transitions to the main interface. Your first action should be connecting to a Meshtastic radio — see [Connections](connections) for detailed instructions.
&gt; 💡 **Tip:** If you skipped any permissions during setup, you can grant them later through **Android Settings → Apps → Meshtastic → Permissions**. The app will prompt you again if a missing permission blocks a feature you try to use.
&gt; 💡 **Tip:** If you skipped any permissions during setup, open **Settings → Permissions** in the app. Every runtime permission is listed there with its current state and a way back to it — including notifications, which the system will not prompt for a second time on its own.
Features also ask in context. Tapping **Scan** on the Connections screen with Bluetooth permission missing explains what it is for and offers to request it; once Android stops prompting, the same control opens the system settings page instead of doing nothing.
## What's Next?
+12 -1
View File
@@ -29,7 +29,18 @@ Use the transport selector — a segmented button row below the connection card
![Transport selector](../../assets/screenshots/connections_transport_filters.png)
&gt; 💡 **Tip:** If your device doesn't appear, check that Bluetooth and Location permissions are granted, and that the radio is not already connected to another device.
&gt; 💡 **Tip:** If your device doesn't appear, check that the radio is not already connected to another device or out of range.
The screen names anything on the app's side that is blocking a scan, with the fix attached:
What you see | What it means |
--------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
A card asking for **Nearby devices** | The permission has not been granted. **Grant permission** requests it; once Android stops prompting, the button becomes **Open settings**. |
**Bluetooth is off** | The adapter is disabled — the card opens Bluetooth settings. |
**Bluetooth scanning also needs location services** | Android 11 and older only: the permission is held but the system location toggle is off. |
No card, empty list | Nothing on this side is blocking the scan — the radio is out of range, off, or already connected elsewhere. |
Tapping **Scan** after you have declined the permission once explains what it is for before asking again, and lets you decline again without being cornered.
### Connection Status
+20 -4
View File
@@ -13,7 +13,7 @@ Welcome to Meshtastic! This guide walks you through the initial setup of the Mes
## First Launch
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or you can skip and configure permissions later in Android settings.
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or skipped — nothing here is a one-time offer. Every permission can be reviewed and granted later from **Settings → Permissions** inside the app.
### Welcome Screen
@@ -42,7 +42,7 @@ Grant both permissions when prompted. Without Bluetooth, you'll need to use USB
### Location Permission
&gt; ⚠️ **Why is location required for Bluetooth?** Android requires location permission to discover nearby Bluetooth Low Energy devices. This is an Android system requirement, not a Meshtastic-specific choice.
&gt; ⚠️ **Is location required for Bluetooth?** On **Android 11 and older**, yes — those releases treat a Bluetooth scan as a location capability, so the app asks for Location instead of "Nearby devices", and system **Location Services** must also be switched on for a scan to return anything. There you will see **one** location step rather than two, on the Bluetooth screen, because it is a single system permission — and asking twice for it would push you toward the point where Android stops offering the dialog at all (a second denial on Android 11; the "Don't ask again" checkbox on Android 10 and older). On **Android 12 and newer** the two are separate: "Nearby devices" is declared `neverForLocation`, and declining Location does not stop you finding or connecting to a radio.
Meshtastic also uses your location for:
@@ -55,7 +55,7 @@ Grant **"While using the app"** or **"Always"** depending on your preference:
- **While using the app** — position updates only when the app is open
- **Always** — enables background position updates for always-on mesh presence
If denied, Bluetooth scanning will not function and your node will not report a position.
Declining leaves the rest of the app working: on Android 12 and newer, Bluetooth is unaffected and only the map position and position sharing are disabled. On Android 11 and older, Bluetooth scanning also stops, because that is the permission Android gates it behind.
### Notifications Permission
@@ -76,11 +76,27 @@ On supported devices, the app may request permission for critical alerts:
- You can **skip** this step if you don't need breakthrough notifications
- Configure or revoke later in Android notification settings
### Reviewing permissions later
**Settings → Permissions** summarizes where every runtime permission stands. It reads _All allowed_ when nothing needs you, and names the count when something does — opening itself automatically in that case. Tap the row to see the full list at any time:
State | What tapping the row does |
------------------------------------------- | -------------------------------------------------------------------------------------------- |
**Allowed** | Opens the system page, so you can review or revoke it |
**Not asked yet** | Requests it |
**Denied — tap to allow** | Explains what the permission is for, then asks again if you agree |
**Blocked — tap to open system settings** | Android will no longer show its dialog, so this opens the page where you can turn it back on |
**Not required on this version of Android** | Nothing — the permission does not exist on your device |
This matters most for notifications. The app used to ask for them in exactly one place — the setup flow — so declining there meant no message, new-node, or low-battery alerts, with nothing in the app that could ask again. Android itself stops showing the dialog once you have declined firmly (a second denial on Android 11 and newer), at which point this row switches to **Blocked** and sends you to the system settings page instead.
## After Setup
Once permissions are granted, the app transitions to the main interface. Your first action should be connecting to a Meshtastic radio — see [Connections](connections) for detailed instructions.
&gt; 💡 **Tip:** If you skipped any permissions during setup, you can grant them later through **Android Settings → Apps → Meshtastic → Permissions**. The app will prompt you again if a missing permission blocks a feature you try to use.
&gt; 💡 **Tip:** If you skipped any permissions during setup, open **Settings → Permissions** in the app. Every runtime permission is listed there with its current state and a way back to it — including notifications, which the system will not prompt for a second time on its own.
Features also ask in context. Tapping **Scan** on the Connections screen with Bluetooth permission missing explains what it is for and offers to request it; once Android stops prompting, the same control opens the system settings page instead of doing nothing.
## What's Next?
+12 -1
View File
@@ -29,7 +29,18 @@ Use the transport selector — a segmented button row below the connection card
![Transport selector](../../assets/screenshots/connections_transport_filters.png)
&gt; 💡 **Tip:** If your device doesn't appear, check that Bluetooth and Location permissions are granted, and that the radio is not already connected to another device.
&gt; 💡 **Tip:** If your device doesn't appear, check that the radio is not already connected to another device or out of range.
The screen names anything on the app's side that is blocking a scan, with the fix attached:
What you see | What it means |
--------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
A card asking for **Nearby devices** | The permission has not been granted. **Grant permission** requests it; once Android stops prompting, the button becomes **Open settings**. |
**Bluetooth is off** | The adapter is disabled — the card opens Bluetooth settings. |
**Bluetooth scanning also needs location services** | Android 11 and older only: the permission is held but the system location toggle is off. |
No card, empty list | Nothing on this side is blocking the scan — the radio is out of range, off, or already connected elsewhere. |
Tapping **Scan** after you have declined the permission once explains what it is for before asking again, and lets you decline again without being cornered.
### Connection Status
+20 -4
View File
@@ -13,7 +13,7 @@ Welcome to Meshtastic! This guide walks you through the initial setup of the Mes
## First Launch
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or you can skip and configure permissions later in Android settings.
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or skipped — nothing here is a one-time offer. Every permission can be reviewed and granted later from **Settings → Permissions** inside the app.
### Welcome Screen
@@ -42,7 +42,7 @@ Grant both permissions when prompted. Without Bluetooth, you'll need to use USB
### Location Permission
&gt; ⚠️ **Why is location required for Bluetooth?** Android requires location permission to discover nearby Bluetooth Low Energy devices. This is an Android system requirement, not a Meshtastic-specific choice.
&gt; ⚠️ **Is location required for Bluetooth?** On **Android 11 and older**, yes — those releases treat a Bluetooth scan as a location capability, so the app asks for Location instead of "Nearby devices", and system **Location Services** must also be switched on for a scan to return anything. There you will see **one** location step rather than two, on the Bluetooth screen, because it is a single system permission — and asking twice for it would push you toward the point where Android stops offering the dialog at all (a second denial on Android 11; the "Don't ask again" checkbox on Android 10 and older). On **Android 12 and newer** the two are separate: "Nearby devices" is declared `neverForLocation`, and declining Location does not stop you finding or connecting to a radio.
Meshtastic also uses your location for:
@@ -55,7 +55,7 @@ Grant **"While using the app"** or **"Always"** depending on your preference:
- **While using the app** — position updates only when the app is open
- **Always** — enables background position updates for always-on mesh presence
If denied, Bluetooth scanning will not function and your node will not report a position.
Declining leaves the rest of the app working: on Android 12 and newer, Bluetooth is unaffected and only the map position and position sharing are disabled. On Android 11 and older, Bluetooth scanning also stops, because that is the permission Android gates it behind.
### Notifications Permission
@@ -76,11 +76,27 @@ On supported devices, the app may request permission for critical alerts:
- You can **skip** this step if you don't need breakthrough notifications
- Configure or revoke later in Android notification settings
### Reviewing permissions later
**Settings → Permissions** summarizes where every runtime permission stands. It reads _All allowed_ when nothing needs you, and names the count when something does — opening itself automatically in that case. Tap the row to see the full list at any time:
State | What tapping the row does |
------------------------------------------- | -------------------------------------------------------------------------------------------- |
**Allowed** | Opens the system page, so you can review or revoke it |
**Not asked yet** | Requests it |
**Denied — tap to allow** | Explains what the permission is for, then asks again if you agree |
**Blocked — tap to open system settings** | Android will no longer show its dialog, so this opens the page where you can turn it back on |
**Not required on this version of Android** | Nothing — the permission does not exist on your device |
This matters most for notifications. The app used to ask for them in exactly one place — the setup flow — so declining there meant no message, new-node, or low-battery alerts, with nothing in the app that could ask again. Android itself stops showing the dialog once you have declined firmly (a second denial on Android 11 and newer), at which point this row switches to **Blocked** and sends you to the system settings page instead.
## After Setup
Once permissions are granted, the app transitions to the main interface. Your first action should be connecting to a Meshtastic radio — see [Connections](connections) for detailed instructions.
&gt; 💡 **Tip:** If you skipped any permissions during setup, you can grant them later through **Android Settings → Apps → Meshtastic → Permissions**. The app will prompt you again if a missing permission blocks a feature you try to use.
&gt; 💡 **Tip:** If you skipped any permissions during setup, open **Settings → Permissions** in the app. Every runtime permission is listed there with its current state and a way back to it — including notifications, which the system will not prompt for a second time on its own.
Features also ask in context. Tapping **Scan** on the Connections screen with Bluetooth permission missing explains what it is for and offers to request it; once Android stops prompting, the same control opens the system settings page instead of doing nothing.
## What's Next?
+12 -1
View File
@@ -29,7 +29,18 @@ Sinihamba, võrgu ja USB-transpordi vahel vahetamiseks (üks on korraga aktiivne
![Transpordi valik](../../assets/screenshots/connections_transport_filters.png)
&gt; 💡 **Vihje:** Kui sinu seadet ei kuvata, kontrolli, kas sinihamba ja asukoha load on antud ning et raadio poleks juba teise seadmega ühendatud.
&gt; 💡 **Tip:** If your device doesn't appear, check that the radio is not already connected to another device or out of range.
The screen names anything on the app's side that is blocking a scan, with the fix attached:
What you see | What it means |
--------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
A card asking for **Nearby devices** | The permission has not been granted. **Grant permission** requests it; once Android stops prompting, the button becomes **Open settings**. |
**Bluetooth is off** | The adapter is disabled — the card opens Bluetooth settings. |
**Bluetooth scanning also needs location services** | Android 11 and older only: the permission is held but the system location toggle is off. |
No card, empty list | Nothing on this side is blocking the scan — the radio is out of range, off, or already connected elsewhere. |
Tapping **Scan** after you have declined the permission once explains what it is for before asking again, and lets you decline again without being cornered.
### Ühenduse olek
+20 -4
View File
@@ -13,7 +13,7 @@ Tere tulemast Meshtasticusse! See juhend juhendab sind Meshtastic Androidi raken
## First Launch
Rakenduse esmakordsel avamisel juhendatakse sind sissejuhatavas voos, mis aitab konfigureerida olulisi õigusi ja sätteid. Iga sammu saab läbida järjekorras või võid selle vahele jätta ja õigused hiljem Androidi seadetes konfigureerida.
Rakenduse esmakordsel avamisel juhendatakse sind sissejuhatavas voos, mis aitab konfigureerida olulisi õigusi ja sätteid. Each step can be completed in order, or skipped — nothing here is a one-time offer. Every permission can be reviewed and granted later from **Settings → Permissions** inside the app.
### Tervituskuva
@@ -42,7 +42,7 @@ Grant both permissions when prompted. Ilma sinihambata peate kasutama USB- või
### Asukoha luba
&gt; ⚠️ **Miks on sinihamba jaoks vaja asukohateavet?** Android vajab lähedalasuvate sinihamba madala energia seadmete avastamiseks asukohale juurdepääsu luba. See on Androidi süsteeminõue, mitte Meshtastic põhine valik.
&gt; ⚠️ **Is location required for Bluetooth?** On **Android 11 and older**, yes — those releases treat a Bluetooth scan as a location capability, so the app asks for Location instead of "Nearby devices", and system **Location Services** must also be switched on for a scan to return anything. There you will see **one** location step rather than two, on the Bluetooth screen, because it is a single system permission — and asking twice for it would push you toward the point where Android stops offering the dialog at all (a second denial on Android 11; the "Don't ask again" checkbox on Android 10 and older). On **Android 12 and newer** the two are separate: "Nearby devices" is declared `neverForLocation`, and declining Location does not stop you finding or connecting to a radio.
Meshtastic kasutab sinu asukohta ka järgmiseks:
@@ -55,7 +55,7 @@ Grant **"While using the app"** or **"Always"** depending on your preference:
- **Rakenduse kasutamise ajal** asukohta uuendatakse kui rakendus on avatud
- **Alati** lubab taustal asukoha värskendusi, et kärgvõrgu oleks alati sisse lülitatud
Kui keelatud, siis sinihamba otsing ei toimi ja sõlm ei edasta asukohta.
Declining leaves the rest of the app working: on Android 12 and newer, Bluetooth is unaffected and only the map position and position sharing are disabled. On Android 11 and older, Bluetooth scanning also stops, because that is the permission Android gates it behind.
### Märguannete load
@@ -76,11 +76,27 @@ On supported devices, the app may request permission for critical alerts:
- Võid selle sammu **vahele jätta**, kui te kõrge prioriteediga märguandeid ei vaja
- Seadistada või tühistada hiljem Androidi teavitusseadetes
### Reviewing permissions later
**Settings → Permissions** summarizes where every runtime permission stands. It reads _All allowed_ when nothing needs you, and names the count when something does — opening itself automatically in that case. Tap the row to see the full list at any time:
Olek | What tapping the row does |
------------------------------------------- | -------------------------------------------------------------------------------------------- |
**Allowed** | Opens the system page, so you can review or revoke it |
**Not asked yet** | Requests it |
**Denied — tap to allow** | Explains what the permission is for, then asks again if you agree |
**Blocked — tap to open system settings** | Android will no longer show its dialog, so this opens the page where you can turn it back on |
**Not required on this version of Android** | Nothing — the permission does not exist on your device |
This matters most for notifications. The app used to ask for them in exactly one place — the setup flow — so declining there meant no message, new-node, or low-battery alerts, with nothing in the app that could ask again. Android itself stops showing the dialog once you have declined firmly (a second denial on Android 11 and newer), at which point this row switches to **Blocked** and sends you to the system settings page instead.
## Peale seadistamist
Kui load on antud, läheb rakendus üle põhiliidesele. Esimene samm peaks olema ühenduse loomine Meshtastic raadioga üksikasjalike juhiste saamiseks vaata [Ühendused] (connections).
&gt; 💡 **Vihje:** Kui jätsid seadistamise ajal mõne õiguse andmata, saad selle hiljem anda jaotises **Androidi seaded → Rakendused → Meshtastic → Load**. The app will prompt you again if a missing permission blocks a feature you try to use.
&gt; 💡 **Tip:** If you skipped any permissions during setup, open **Settings → Permissions** in the app. Every runtime permission is listed there with its current state and a way back to it — including notifications, which the system will not prompt for a second time on its own.
Features also ask in context. Tapping **Scan** on the Connections screen with Bluetooth permission missing explains what it is for and offers to request it; once Android stops prompting, the same control opens the system settings page instead of doing nothing.
## What's Next?
+12 -1
View File
@@ -29,7 +29,18 @@ Vaihda bluetooth-, verkko- ja USB-yhteyksien välillä käyttämällä yhteyskor
![Yhteysvalitsin](../../assets/screenshots/connections_transport_filters.png)
&gt; 💡 **Vinkki:** Jos laitteesi ei näy, varmista että Bluetooth ja sijaintiluvat on myönnetty ja että radio ei ole jo yhdistetty toiseen laitteeseen.
&gt; 💡 **Vinkki:** Jos laitettasi ei näy, tarkista, ettei radio ole jo yhdistetty toiseen laitteeseen tai kantaman ulkopuolella.
Näytössä kerrotaan kaikki sovelluksen puolella olevat syyt, jotka estävät haun, sekä niiden ratkaisut:
Näet seuraavan | Mitä se tarkoittaa |
------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
Kortti pyytää **Lähistön laitteet** -käyttöoikeutta | Käyttöoikeutta ei ole myönnetty. **Myönnä käyttöoikeus** pyytää sitä. Kun Android lakkaa kysymästä, painikkeeksi muuttuu **Avaa asetukset**. |
**Bluetooth on pois käytöstä** | Bluetooth-sovitin on poistettu käytöstä kortti avaa Bluetooth-asetukset. |
**Bluetooth-laitteiden haku edellyttää myös sijaintipalvelujen käyttöä** | Vain Android 11:ssä ja vanhemmissa versioissa: käyttöoikeus on myönnetty, mutta järjestelmän sijaintipalvelut ovat pois käytöstä. |
Ei korttia, tyhjä luettelo | Mikään sovelluksen puolella ei estä hakua radio on kantaman ulkopuolella, pois käytöstä tai jo yhdistetty toiseen laitteeseen. |
Kun napautat **Hae** sen jälkeen, kun olet kerran hylännyt käyttöoikeuspyynnön, sovellus kertoo ensin, mihin käyttöoikeutta tarvitaan, ennen kuin pyytää sitä uudelleen. Näin voit myös kieltäytyä rauhassa ilman painostusta.
### Yhteyden tila
+20 -4
View File
@@ -13,7 +13,7 @@ Tervetuloa Meshtasticiin! Tämä opas opastaa sinut Meshtastic Android -sovelluk
## Ensimmäinen käynnistys
Kun avaat sovelluksen ensimmäistä kertaa, sinut ohjataan käyttöönottoprosessin läpi, joka auttaa määrittämään tarvittavat käyttöoikeudet ja asetukset. Voit suorittaa jokaisen vaiheen järjestyksessä tai ohittaa ne ja määrittää käyttöoikeudet myöhemmin Androidin asetuksissa.
Kun avaat sovelluksen ensimmäistä kertaa, sinut ohjataan käyttöönottoprosessin läpi, joka auttaa määrittämään tarvittavat käyttöoikeudet ja asetukset. Jokainen vaihe voidaan suorittaa järjestyksessä tai ohittaa mikään niistä ei ole kertaluonteinen mahdollisuus. Kaikki käyttöoikeudet voidaan tarkistaa ja myöntää myöhemmin sovelluksen **Asetukset → Käyttöoikeudet** -kohdassa.
### Aloitusnäkymä
@@ -42,7 +42,7 @@ Myönnä molemmat käyttöoikeudet pyydettäessä. Ilman Bluetoothia sinun on k
### Sijaintikäyttöoikeus
&gt; ⚠️ **Miksi sijaintikäyttöoikeus tarvitaan Bluetoothille?** Android vaatii sijaintikäyttöoikeuden lähellä olevien Bluetooth Low Energy -laitteiden löytämiseen. Tämä on Android-järjestelmän vaatimus, eikä Meshtasticin erityinen valinta.
&gt; ⚠️ **Tarvitaanko Bluetoothiin sijaintia?** Android 11:ssä ja sitä vanhemmissa versioissa kyllä. Niissä Bluetooth-laitteiden haku käsitellään sijaintiominaisuutena, joten sovellus pyytää **Lähistön laitteet** -käyttöoikeuden sijaan sijaintikäyttöoikeutta, ja myös **Sijaintipalvelut** on oltava käytössä, jotta haku toimii. Näissä versioissa Bluetooth-näytössä näkyy kaksi sijaan vain **yksi** sijaintikäyttöoikeuden vaihe, koska kyseessä on yksi järjestelmän käyttöoikeus. Sen pyytäminen kahdesti voisi johtaa siihen, että Android lakkaa näyttämästä käyttöoikeusikkunaa kokonaan (toisen hylkäyksen jälkeen Android 11:ssä tai "Älä kysy uudelleen" -valinnan jälkeen Android 10:ssä ja vanhemmissa versioissa). **Android 12:ssa ja uudemmissa versioissa** nämä ovat erillisiä: "Lähistön laitteet" on määritelty asetuksella `neverForLocation`, eikä sijaintikäyttöoikeuden hylkääminen estä radion löytämistä tai siihen yhdistämistä.
Meshtastic käyttää sijaintiasi myös seuraaviin tarkoituksiin:
@@ -55,7 +55,7 @@ Myönnä **"Sovelluksen käytön aikana"** tai **"Aina"** oman mieltymyksesi muk
- **Sovelluksen käytön aikana** — sijainti päivittyy vain silloin, kun sovellus on avoinna
- **Aina** — mahdollistaa sijainnin päivittämisen taustalla jatkuvaa verkon läsnäoloa varten
Jos käyttöoikeus evätään, Bluetooth-skannaus ei toimi eikä radiosi raportoi sijaintia.
Sijaintikäyttöoikeuden hylkääminen ei estä sovelluksen muuta toimintaa. Android 12:ssa ja uudemmissa versioissa Bluetooth toimii edelleen, ja vain kartta, sijainnin näyttäminen ja sijainnin jakaminen poistuvat käytöstä. Android 11:ssä ja sitä vanhemmissa versioissa myös Bluetooth-laitteiden haku lakkaa toimimasta, koska Android edellyttää siihen sijaintikäyttöoikeutta.
### Ilmoituskäyttöoikeus
@@ -76,11 +76,27 @@ Tuetuilla laitteilla sovellus voi pyytää käyttöoikeutta kriittisiin hälytyk
- Voit **ohittaa** tämän vaiheen, jos et tarvitse ilmoituksia, jotka ohittavat **Älä häiritse** -tilan
- Voit määrittää tai peruuttaa tämän myöhemmin Androidin ilmoitusasetuksissa
### Käyttöoikeuksien tarkistaminen myöhemmin
**Asetukset → Käyttöoikeudet** näyttää kaikkien käyttöaikaisten käyttöoikeuksien tilan. Kun mikään käyttöoikeus ei vaadi huomiotasi, siinä lukee _Kaikki sallittu_. Jos jokin käyttöoikeus vaatii huomiota, siinä näytetään niiden määrä, ja näkymä avautuu automaattisesti. Napauta riviä nähdäksesi koko luettelon milloin tahansa:
Tila | Mitä rivin napauttaminen tekee |
----------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
**Sallittu** | Avaa järjestelmän sivun, jossa voit tarkistaa tai peruuttaa käyttöoikeuden |
**Ei kysytty vielä** | Pyytää sitä |
**Estetty - napauta salliaksesi** | Selittää, mihin käyttöoikeutta tarvitaan, ja pyytää sitä uudelleen, jos hyväksyt |
**Estetty - napauta avataksesi järjestelmäasetukset** | Android ei enää näytä käyttöoikeusikkunaa, joten tämä avaa sivun, jossa voit ottaa käyttöoikeuden uudelleen käyttöön |
**Ei tarvita tässä Android-versiossa** | Ei mitään tätä käyttöoikeutta ei ole laitteessasi |
Tämä koskee erityisesti ilmoituksia. Aiemmin sovellus pyysi tätä käyttöoikeutta vain yhdessä paikassa käyttöönottovaiheessa joten sen hylkääminen esti viesti-, uusi radio- ja akun alhaisen varaustason ilmoitukset, eikä sovellus voinut pyytää käyttöoikeutta uudelleen. Kun olet hylännyt käyttöoikeuspyynnön lopullisesti (Android 11:ssä ja uudemmissa versioissa toisen hylkäyksen jälkeen), Android ei enää näytä käyttöoikeusikkunaa. Tällöin tämä rivi muuttuu tilaan **Estetty** ja avaa sen sijaan järjestelmän asetussivun.
## Määrityksen jälkeen
Kun käyttöoikeudet on myönnetty, sovellus siirtyy pääkäyttöliittymään. Ensimmäinen toimenpiteesi pitäisi olla yhteyden muodostaminen Meshtastic-radioon — katso [Yhteydet](connections) yksityiskohtaisia ohjeita varten.
&gt; 💡 **Vinkki:** Jos ohitit käyttöoikeuksia määrityksen aikana, voit myöntää ne myöhemmin kohdassa **Androidin asetukset → Sovellukset → Meshtastic → Käyttöoikeudet**. Sovellus pyytää sinulta uudelleen käyttöoikeutta, jos puuttuva käyttöoikeus estää käyttämästä ominaisuutta, jota yrität käyttää.
&gt; 💡 **Vinkki:** Jos ohitit käyttöoikeuksia käyttöönottovaiheessa, avaa sovelluksessa **Asetukset → Käyttöoikeudet**. Kaikki käyttöaikaiset käyttöoikeudet näkyvät siellä nykyisessä tilassaan sekä linkkinä niiden hallintaan, mukaan lukien ilmoitukset, joita järjestelmä ei pyydä toista kertaa automaattisesti.
Sovelluksen toiminnot pyytävät käyttöoikeuksia myös tarpeen mukaan. Kun **Yhteydet**-näytössä napautat **Hae** ilman Bluetooth-käyttöoikeutta, sovellus kertoo, mihin käyttöoikeutta tarvitaan, ja tarjoaa mahdollisuuden pyytää sitä. Kun Android ei enää näytä käyttöoikeusikkunaa, sama painike avaa sen sijaan järjestelmän asetussivun eikä jää toimettomaksi.
## Mitä seuraavaksi?
+12 -1
View File
@@ -29,7 +29,18 @@ Use the transport selector — a segmented button row below the connection card
![Transport selector](../../assets/screenshots/connections_transport_filters.png)
&gt; 💡 **Tip:** If your device doesn't appear, check that Bluetooth and Location permissions are granted, and that the radio is not already connected to another device.
&gt; 💡 **Tip:** If your device doesn't appear, check that the radio is not already connected to another device or out of range.
The screen names anything on the app's side that is blocking a scan, with the fix attached:
What you see | What it means |
--------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
A card asking for **Nearby devices** | The permission has not been granted. **Grant permission** requests it; once Android stops prompting, the button becomes **Open settings**. |
**Bluetooth is off** | The adapter is disabled — the card opens Bluetooth settings. |
**Bluetooth scanning also needs location services** | Android 11 and older only: the permission is held but the system location toggle is off. |
No card, empty list | Nothing on this side is blocking the scan — the radio is out of range, off, or already connected elsewhere. |
Tapping **Scan** after you have declined the permission once explains what it is for before asking again, and lets you decline again without being cornered.
### Connection Status
+20 -4
View File
@@ -13,7 +13,7 @@ Welcome to Meshtastic! This guide walks you through the initial setup of the Mes
## First Launch
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or you can skip and configure permissions later in Android settings.
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or skipped — nothing here is a one-time offer. Every permission can be reviewed and granted later from **Settings → Permissions** inside the app.
### Welcome Screen
@@ -42,7 +42,7 @@ Grant both permissions when prompted. Without Bluetooth, you'll need to use USB
### Location Permission
&gt; ⚠️ **Why is location required for Bluetooth?** Android requires location permission to discover nearby Bluetooth Low Energy devices. This is an Android system requirement, not a Meshtastic-specific choice.
&gt; ⚠️ **Is location required for Bluetooth?** On **Android 11 and older**, yes — those releases treat a Bluetooth scan as a location capability, so the app asks for Location instead of "Nearby devices", and system **Location Services** must also be switched on for a scan to return anything. There you will see **one** location step rather than two, on the Bluetooth screen, because it is a single system permission — and asking twice for it would push you toward the point where Android stops offering the dialog at all (a second denial on Android 11; the "Don't ask again" checkbox on Android 10 and older). On **Android 12 and newer** the two are separate: "Nearby devices" is declared `neverForLocation`, and declining Location does not stop you finding or connecting to a radio.
Meshtastic also uses your location for:
@@ -55,7 +55,7 @@ Grant **"While using the app"** or **"Always"** depending on your preference:
- **While using the app** — position updates only when the app is open
- **Always** — enables background position updates for always-on mesh presence
If denied, Bluetooth scanning will not function and your node will not report a position.
Declining leaves the rest of the app working: on Android 12 and newer, Bluetooth is unaffected and only the map position and position sharing are disabled. On Android 11 and older, Bluetooth scanning also stops, because that is the permission Android gates it behind.
### Notifications Permission
@@ -76,11 +76,27 @@ On supported devices, the app may request permission for critical alerts:
- You can **skip** this step if you don't need breakthrough notifications
- Configure or revoke later in Android notification settings
### Reviewing permissions later
**Settings → Permissions** summarizes where every runtime permission stands. It reads _All allowed_ when nothing needs you, and names the count when something does — opening itself automatically in that case. Tap the row to see the full list at any time:
State | What tapping the row does |
------------------------------------------- | -------------------------------------------------------------------------------------------- |
**Allowed** | Opens the system page, so you can review or revoke it |
**Not asked yet** | Requests it |
**Denied — tap to allow** | Explains what the permission is for, then asks again if you agree |
**Blocked — tap to open system settings** | Android will no longer show its dialog, so this opens the page where you can turn it back on |
**Not required on this version of Android** | Nothing — the permission does not exist on your device |
This matters most for notifications. The app used to ask for them in exactly one place — the setup flow — so declining there meant no message, new-node, or low-battery alerts, with nothing in the app that could ask again. Android itself stops showing the dialog once you have declined firmly (a second denial on Android 11 and newer), at which point this row switches to **Blocked** and sends you to the system settings page instead.
## After Setup
Once permissions are granted, the app transitions to the main interface. Your first action should be connecting to a Meshtastic radio — see [Connections](connections) for detailed instructions.
&gt; 💡 **Tip:** If you skipped any permissions during setup, you can grant them later through **Android Settings → Apps → Meshtastic → Permissions**. The app will prompt you again if a missing permission blocks a feature you try to use.
&gt; 💡 **Tip:** If you skipped any permissions during setup, open **Settings → Permissions** in the app. Every runtime permission is listed there with its current state and a way back to it — including notifications, which the system will not prompt for a second time on its own.
Features also ask in context. Tapping **Scan** on the Connections screen with Bluetooth permission missing explains what it is for and offers to request it; once Android stops prompting, the same control opens the system settings page instead of doing nothing.
## What's Next?
+12 -1
View File
@@ -29,7 +29,18 @@ Use the transport selector — a segmented button row below the connection card
![Transport selector](../../assets/screenshots/connections_transport_filters.png)
&gt; 💡 **Tip:** If your device doesn't appear, check that Bluetooth and Location permissions are granted, and that the radio is not already connected to another device.
&gt; 💡 **Tip:** If your device doesn't appear, check that the radio is not already connected to another device or out of range.
The screen names anything on the app's side that is blocking a scan, with the fix attached:
What you see | What it means |
--------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
A card asking for **Nearby devices** | The permission has not been granted. **Grant permission** requests it; once Android stops prompting, the button becomes **Open settings**. |
**Bluetooth is off** | The adapter is disabled — the card opens Bluetooth settings. |
**Bluetooth scanning also needs location services** | Android 11 and older only: the permission is held but the system location toggle is off. |
No card, empty list | Nothing on this side is blocking the scan — the radio is out of range, off, or already connected elsewhere. |
Tapping **Scan** after you have declined the permission once explains what it is for before asking again, and lets you decline again without being cornered.
### Connection Status
+20 -4
View File
@@ -13,7 +13,7 @@ Welcome to Meshtastic! This guide walks you through the initial setup of the Mes
## First Launch
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or you can skip and configure permissions later in Android settings.
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or skipped — nothing here is a one-time offer. Every permission can be reviewed and granted later from **Settings → Permissions** inside the app.
### Welcome Screen
@@ -42,7 +42,7 @@ Grant both permissions when prompted. Without Bluetooth, you'll need to use USB
### Location Permission
&gt; ⚠️ **Why is location required for Bluetooth?** Android requires location permission to discover nearby Bluetooth Low Energy devices. This is an Android system requirement, not a Meshtastic-specific choice.
&gt; ⚠️ **Is location required for Bluetooth?** On **Android 11 and older**, yes — those releases treat a Bluetooth scan as a location capability, so the app asks for Location instead of "Nearby devices", and system **Location Services** must also be switched on for a scan to return anything. There you will see **one** location step rather than two, on the Bluetooth screen, because it is a single system permission — and asking twice for it would push you toward the point where Android stops offering the dialog at all (a second denial on Android 11; the "Don't ask again" checkbox on Android 10 and older). On **Android 12 and newer** the two are separate: "Nearby devices" is declared `neverForLocation`, and declining Location does not stop you finding or connecting to a radio.
Meshtastic also uses your location for:
@@ -55,7 +55,7 @@ Grant **"While using the app"** or **"Always"** depending on your preference:
- **While using the app** — position updates only when the app is open
- **Always** — enables background position updates for always-on mesh presence
If denied, Bluetooth scanning will not function and your node will not report a position.
Declining leaves the rest of the app working: on Android 12 and newer, Bluetooth is unaffected and only the map position and position sharing are disabled. On Android 11 and older, Bluetooth scanning also stops, because that is the permission Android gates it behind.
### Notifications Permission
@@ -76,11 +76,27 @@ On supported devices, the app may request permission for critical alerts:
- You can **skip** this step if you don't need breakthrough notifications
- Configure or revoke later in Android notification settings
### Reviewing permissions later
**Settings → Permissions** summarizes where every runtime permission stands. It reads _All allowed_ when nothing needs you, and names the count when something does — opening itself automatically in that case. Tap the row to see the full list at any time:
State | What tapping the row does |
------------------------------------------- | -------------------------------------------------------------------------------------------- |
**Allowed** | Opens the system page, so you can review or revoke it |
**Not asked yet** | Requests it |
**Denied — tap to allow** | Explains what the permission is for, then asks again if you agree |
**Blocked — tap to open system settings** | Android will no longer show its dialog, so this opens the page where you can turn it back on |
**Not required on this version of Android** | Nothing — the permission does not exist on your device |
This matters most for notifications. The app used to ask for them in exactly one place — the setup flow — so declining there meant no message, new-node, or low-battery alerts, with nothing in the app that could ask again. Android itself stops showing the dialog once you have declined firmly (a second denial on Android 11 and newer), at which point this row switches to **Blocked** and sends you to the system settings page instead.
## After Setup
Once permissions are granted, the app transitions to the main interface. Your first action should be connecting to a Meshtastic radio — see [Connections](connections) for detailed instructions.
&gt; 💡 **Tip:** If you skipped any permissions during setup, you can grant them later through **Android Settings → Apps → Meshtastic → Permissions**. The app will prompt you again if a missing permission blocks a feature you try to use.
&gt; 💡 **Tip:** If you skipped any permissions during setup, open **Settings → Permissions** in the app. Every runtime permission is listed there with its current state and a way back to it — including notifications, which the system will not prompt for a second time on its own.
Features also ask in context. Tapping **Scan** on the Connections screen with Bluetooth permission missing explains what it is for and offers to request it; once Android stops prompting, the same control opens the system settings page instead of doing nothing.
## What's Next?
+12 -1
View File
@@ -29,7 +29,18 @@ Use the transport selector — a segmented button row below the connection card
![Transport selector](../../assets/screenshots/connections_transport_filters.png)
&gt; 💡 **Tip:** If your device doesn't appear, check that Bluetooth and Location permissions are granted, and that the radio is not already connected to another device.
&gt; 💡 **Tip:** If your device doesn't appear, check that the radio is not already connected to another device or out of range.
The screen names anything on the app's side that is blocking a scan, with the fix attached:
What you see | What it means |
--------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
A card asking for **Nearby devices** | The permission has not been granted. **Grant permission** requests it; once Android stops prompting, the button becomes **Open settings**. |
**Bluetooth is off** | The adapter is disabled — the card opens Bluetooth settings. |
**Bluetooth scanning also needs location services** | Android 11 and older only: the permission is held but the system location toggle is off. |
No card, empty list | Nothing on this side is blocking the scan — the radio is out of range, off, or already connected elsewhere. |
Tapping **Scan** after you have declined the permission once explains what it is for before asking again, and lets you decline again without being cornered.
### Connection Status
+20 -4
View File
@@ -13,7 +13,7 @@ Welcome to Meshtastic! This guide walks you through the initial setup of the Mes
## First Launch
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or you can skip and configure permissions later in Android settings.
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or skipped — nothing here is a one-time offer. Every permission can be reviewed and granted later from **Settings → Permissions** inside the app.
### Welcome Screen
@@ -42,7 +42,7 @@ Grant both permissions when prompted. Without Bluetooth, you'll need to use USB
### Location Permission
&gt; ⚠️ **Why is location required for Bluetooth?** Android requires location permission to discover nearby Bluetooth Low Energy devices. This is an Android system requirement, not a Meshtastic-specific choice.
&gt; ⚠️ **Is location required for Bluetooth?** On **Android 11 and older**, yes — those releases treat a Bluetooth scan as a location capability, so the app asks for Location instead of "Nearby devices", and system **Location Services** must also be switched on for a scan to return anything. There you will see **one** location step rather than two, on the Bluetooth screen, because it is a single system permission — and asking twice for it would push you toward the point where Android stops offering the dialog at all (a second denial on Android 11; the "Don't ask again" checkbox on Android 10 and older). On **Android 12 and newer** the two are separate: "Nearby devices" is declared `neverForLocation`, and declining Location does not stop you finding or connecting to a radio.
Meshtastic also uses your location for:
@@ -55,7 +55,7 @@ Grant **"While using the app"** or **"Always"** depending on your preference:
- **While using the app** — position updates only when the app is open
- **Always** — enables background position updates for always-on mesh presence
If denied, Bluetooth scanning will not function and your node will not report a position.
Declining leaves the rest of the app working: on Android 12 and newer, Bluetooth is unaffected and only the map position and position sharing are disabled. On Android 11 and older, Bluetooth scanning also stops, because that is the permission Android gates it behind.
### Notifications Permission
@@ -76,11 +76,27 @@ On supported devices, the app may request permission for critical alerts:
- You can **skip** this step if you don't need breakthrough notifications
- Configure or revoke later in Android notification settings
### Reviewing permissions later
**Settings → Permissions** summarizes where every runtime permission stands. It reads _All allowed_ when nothing needs you, and names the count when something does — opening itself automatically in that case. Tap the row to see the full list at any time:
State | What tapping the row does |
------------------------------------------- | -------------------------------------------------------------------------------------------- |
**Allowed** | Opens the system page, so you can review or revoke it |
**Not asked yet** | Requests it |
**Denied — tap to allow** | Explains what the permission is for, then asks again if you agree |
**Blocked — tap to open system settings** | Android will no longer show its dialog, so this opens the page where you can turn it back on |
**Not required on this version of Android** | Nothing — the permission does not exist on your device |
This matters most for notifications. The app used to ask for them in exactly one place — the setup flow — so declining there meant no message, new-node, or low-battery alerts, with nothing in the app that could ask again. Android itself stops showing the dialog once you have declined firmly (a second denial on Android 11 and newer), at which point this row switches to **Blocked** and sends you to the system settings page instead.
## After Setup
Once permissions are granted, the app transitions to the main interface. Your first action should be connecting to a Meshtastic radio — see [Connections](connections) for detailed instructions.
&gt; 💡 **Tip:** If you skipped any permissions during setup, you can grant them later through **Android Settings → Apps → Meshtastic → Permissions**. The app will prompt you again if a missing permission blocks a feature you try to use.
&gt; 💡 **Tip:** If you skipped any permissions during setup, open **Settings → Permissions** in the app. Every runtime permission is listed there with its current state and a way back to it — including notifications, which the system will not prompt for a second time on its own.
Features also ask in context. Tapping **Scan** on the Connections screen with Bluetooth permission missing explains what it is for and offers to request it; once Android stops prompting, the same control opens the system settings page instead of doing nothing.
## What's Next?
+12 -1
View File
@@ -29,7 +29,18 @@ Use the transport selector — a segmented button row below the connection card
![Transport selector](../../assets/screenshots/connections_transport_filters.png)
&gt; 💡 **Tip:** If your device doesn't appear, check that Bluetooth and Location permissions are granted, and that the radio is not already connected to another device.
&gt; 💡 **Tip:** If your device doesn't appear, check that the radio is not already connected to another device or out of range.
The screen names anything on the app's side that is blocking a scan, with the fix attached:
What you see | What it means |
--------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
A card asking for **Nearby devices** | The permission has not been granted. **Grant permission** requests it; once Android stops prompting, the button becomes **Open settings**. |
**Bluetooth is off** | The adapter is disabled — the card opens Bluetooth settings. |
**Bluetooth scanning also needs location services** | Android 11 and older only: the permission is held but the system location toggle is off. |
No card, empty list | Nothing on this side is blocking the scan — the radio is out of range, off, or already connected elsewhere. |
Tapping **Scan** after you have declined the permission once explains what it is for before asking again, and lets you decline again without being cornered.
### Connection Status
+20 -4
View File
@@ -13,7 +13,7 @@ Welcome to Meshtastic! This guide walks you through the initial setup of the Mes
## First Launch
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or you can skip and configure permissions later in Android settings.
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or skipped — nothing here is a one-time offer. Every permission can be reviewed and granted later from **Settings → Permissions** inside the app.
### Welcome Screen
@@ -42,7 +42,7 @@ Grant both permissions when prompted. Without Bluetooth, you'll need to use USB
### Location Permission
&gt; ⚠️ **Why is location required for Bluetooth?** Android requires location permission to discover nearby Bluetooth Low Energy devices. This is an Android system requirement, not a Meshtastic-specific choice.
&gt; ⚠️ **Is location required for Bluetooth?** On **Android 11 and older**, yes — those releases treat a Bluetooth scan as a location capability, so the app asks for Location instead of "Nearby devices", and system **Location Services** must also be switched on for a scan to return anything. There you will see **one** location step rather than two, on the Bluetooth screen, because it is a single system permission — and asking twice for it would push you toward the point where Android stops offering the dialog at all (a second denial on Android 11; the "Don't ask again" checkbox on Android 10 and older). On **Android 12 and newer** the two are separate: "Nearby devices" is declared `neverForLocation`, and declining Location does not stop you finding or connecting to a radio.
Meshtastic also uses your location for:
@@ -55,7 +55,7 @@ Grant **"While using the app"** or **"Always"** depending on your preference:
- **While using the app** — position updates only when the app is open
- **Always** — enables background position updates for always-on mesh presence
If denied, Bluetooth scanning will not function and your node will not report a position.
Declining leaves the rest of the app working: on Android 12 and newer, Bluetooth is unaffected and only the map position and position sharing are disabled. On Android 11 and older, Bluetooth scanning also stops, because that is the permission Android gates it behind.
### Notifications Permission
@@ -76,11 +76,27 @@ On supported devices, the app may request permission for critical alerts:
- You can **skip** this step if you don't need breakthrough notifications
- Configure or revoke later in Android notification settings
### Reviewing permissions later
**Settings → Permissions** summarizes where every runtime permission stands. It reads _All allowed_ when nothing needs you, and names the count when something does — opening itself automatically in that case. Tap the row to see the full list at any time:
State | What tapping the row does |
------------------------------------------- | -------------------------------------------------------------------------------------------- |
**Allowed** | Opens the system page, so you can review or revoke it |
**Not asked yet** | Requests it |
**Denied — tap to allow** | Explains what the permission is for, then asks again if you agree |
**Blocked — tap to open system settings** | Android will no longer show its dialog, so this opens the page where you can turn it back on |
**Not required on this version of Android** | Nothing — the permission does not exist on your device |
This matters most for notifications. The app used to ask for them in exactly one place — the setup flow — so declining there meant no message, new-node, or low-battery alerts, with nothing in the app that could ask again. Android itself stops showing the dialog once you have declined firmly (a second denial on Android 11 and newer), at which point this row switches to **Blocked** and sends you to the system settings page instead.
## After Setup
Once permissions are granted, the app transitions to the main interface. Your first action should be connecting to a Meshtastic radio — see [Connections](connections) for detailed instructions.
&gt; 💡 **Tip:** If you skipped any permissions during setup, you can grant them later through **Android Settings → Apps → Meshtastic → Permissions**. The app will prompt you again if a missing permission blocks a feature you try to use.
&gt; 💡 **Tip:** If you skipped any permissions during setup, open **Settings → Permissions** in the app. Every runtime permission is listed there with its current state and a way back to it — including notifications, which the system will not prompt for a second time on its own.
Features also ask in context. Tapping **Scan** on the Connections screen with Bluetooth permission missing explains what it is for and offers to request it; once Android stops prompting, the same control opens the system settings page instead of doing nothing.
## What's Next?
+12 -1
View File
@@ -29,7 +29,18 @@ Use the transport selector — a segmented button row below the connection card
![Transport selector](../../assets/screenshots/connections_transport_filters.png)
&gt; 💡 **Tip:** If your device doesn't appear, check that Bluetooth and Location permissions are granted, and that the radio is not already connected to another device.
&gt; 💡 **Tip:** If your device doesn't appear, check that the radio is not already connected to another device or out of range.
The screen names anything on the app's side that is blocking a scan, with the fix attached:
What you see | What it means |
--------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
A card asking for **Nearby devices** | The permission has not been granted. **Grant permission** requests it; once Android stops prompting, the button becomes **Open settings**. |
**Bluetooth is off** | The adapter is disabled — the card opens Bluetooth settings. |
**Bluetooth scanning also needs location services** | Android 11 and older only: the permission is held but the system location toggle is off. |
No card, empty list | Nothing on this side is blocking the scan — the radio is out of range, off, or already connected elsewhere. |
Tapping **Scan** after you have declined the permission once explains what it is for before asking again, and lets you decline again without being cornered.
### Connection Status
+20 -4
View File
@@ -13,7 +13,7 @@ Welcome to Meshtastic! This guide walks you through the initial setup of the Mes
## First Launch
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or you can skip and configure permissions later in Android settings.
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or skipped — nothing here is a one-time offer. Every permission can be reviewed and granted later from **Settings → Permissions** inside the app.
### Welcome Screen
@@ -42,7 +42,7 @@ Grant both permissions when prompted. Without Bluetooth, you'll need to use USB
### Location Permission
&gt; ⚠️ **Why is location required for Bluetooth?** Android requires location permission to discover nearby Bluetooth Low Energy devices. This is an Android system requirement, not a Meshtastic-specific choice.
&gt; ⚠️ **Is location required for Bluetooth?** On **Android 11 and older**, yes — those releases treat a Bluetooth scan as a location capability, so the app asks for Location instead of "Nearby devices", and system **Location Services** must also be switched on for a scan to return anything. There you will see **one** location step rather than two, on the Bluetooth screen, because it is a single system permission — and asking twice for it would push you toward the point where Android stops offering the dialog at all (a second denial on Android 11; the "Don't ask again" checkbox on Android 10 and older). On **Android 12 and newer** the two are separate: "Nearby devices" is declared `neverForLocation`, and declining Location does not stop you finding or connecting to a radio.
Meshtastic also uses your location for:
@@ -55,7 +55,7 @@ Grant **"While using the app"** or **"Always"** depending on your preference:
- **While using the app** — position updates only when the app is open
- **Always** — enables background position updates for always-on mesh presence
If denied, Bluetooth scanning will not function and your node will not report a position.
Declining leaves the rest of the app working: on Android 12 and newer, Bluetooth is unaffected and only the map position and position sharing are disabled. On Android 11 and older, Bluetooth scanning also stops, because that is the permission Android gates it behind.
### Notifications Permission
@@ -76,11 +76,27 @@ On supported devices, the app may request permission for critical alerts:
- You can **skip** this step if you don't need breakthrough notifications
- Configure or revoke later in Android notification settings
### Reviewing permissions later
**Settings → Permissions** summarizes where every runtime permission stands. It reads _All allowed_ when nothing needs you, and names the count when something does — opening itself automatically in that case. Tap the row to see the full list at any time:
State | What tapping the row does |
------------------------------------------- | -------------------------------------------------------------------------------------------- |
**Allowed** | Opens the system page, so you can review or revoke it |
**Not asked yet** | Requests it |
**Denied — tap to allow** | Explains what the permission is for, then asks again if you agree |
**Blocked — tap to open system settings** | Android will no longer show its dialog, so this opens the page where you can turn it back on |
**Not required on this version of Android** | Nothing — the permission does not exist on your device |
This matters most for notifications. The app used to ask for them in exactly one place — the setup flow — so declining there meant no message, new-node, or low-battery alerts, with nothing in the app that could ask again. Android itself stops showing the dialog once you have declined firmly (a second denial on Android 11 and newer), at which point this row switches to **Blocked** and sends you to the system settings page instead.
## After Setup
Once permissions are granted, the app transitions to the main interface. Your first action should be connecting to a Meshtastic radio — see [Connections](connections) for detailed instructions.
&gt; 💡 **Tip:** If you skipped any permissions during setup, you can grant them later through **Android Settings → Apps → Meshtastic → Permissions**. The app will prompt you again if a missing permission blocks a feature you try to use.
&gt; 💡 **Tip:** If you skipped any permissions during setup, open **Settings → Permissions** in the app. Every runtime permission is listed there with its current state and a way back to it — including notifications, which the system will not prompt for a second time on its own.
Features also ask in context. Tapping **Scan** on the Connections screen with Bluetooth permission missing explains what it is for and offers to request it; once Android stops prompting, the same control opens the system settings page instead of doing nothing.
## What's Next?
+12 -1
View File
@@ -29,7 +29,18 @@ Use the transport selector — a segmented button row below the connection card
![Transport selector](../../assets/screenshots/connections_transport_filters.png)
&gt; 💡 **Tip:** If your device doesn't appear, check that Bluetooth and Location permissions are granted, and that the radio is not already connected to another device.
&gt; 💡 **Tip:** If your device doesn't appear, check that the radio is not already connected to another device or out of range.
The screen names anything on the app's side that is blocking a scan, with the fix attached:
What you see | What it means |
--------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
A card asking for **Nearby devices** | The permission has not been granted. **Grant permission** requests it; once Android stops prompting, the button becomes **Open settings**. |
**Bluetooth is off** | The adapter is disabled — the card opens Bluetooth settings. |
**Bluetooth scanning also needs location services** | Android 11 and older only: the permission is held but the system location toggle is off. |
No card, empty list | Nothing on this side is blocking the scan — the radio is out of range, off, or already connected elsewhere. |
Tapping **Scan** after you have declined the permission once explains what it is for before asking again, and lets you decline again without being cornered.
### Connection Status
+20 -4
View File
@@ -13,7 +13,7 @@ Welcome to Meshtastic! This guide walks you through the initial setup of the Mes
## First Launch
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or you can skip and configure permissions later in Android settings.
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or skipped — nothing here is a one-time offer. Every permission can be reviewed and granted later from **Settings → Permissions** inside the app.
### Welcome Screen
@@ -42,7 +42,7 @@ Grant both permissions when prompted. Without Bluetooth, you'll need to use USB
### Location Permission
&gt; ⚠️ **Why is location required for Bluetooth?** Android requires location permission to discover nearby Bluetooth Low Energy devices. This is an Android system requirement, not a Meshtastic-specific choice.
&gt; ⚠️ **Is location required for Bluetooth?** On **Android 11 and older**, yes — those releases treat a Bluetooth scan as a location capability, so the app asks for Location instead of "Nearby devices", and system **Location Services** must also be switched on for a scan to return anything. There you will see **one** location step rather than two, on the Bluetooth screen, because it is a single system permission — and asking twice for it would push you toward the point where Android stops offering the dialog at all (a second denial on Android 11; the "Don't ask again" checkbox on Android 10 and older). On **Android 12 and newer** the two are separate: "Nearby devices" is declared `neverForLocation`, and declining Location does not stop you finding or connecting to a radio.
Meshtastic also uses your location for:
@@ -55,7 +55,7 @@ Grant **"While using the app"** or **"Always"** depending on your preference:
- **While using the app** — position updates only when the app is open
- **Always** — enables background position updates for always-on mesh presence
If denied, Bluetooth scanning will not function and your node will not report a position.
Declining leaves the rest of the app working: on Android 12 and newer, Bluetooth is unaffected and only the map position and position sharing are disabled. On Android 11 and older, Bluetooth scanning also stops, because that is the permission Android gates it behind.
### Notifications Permission
@@ -76,11 +76,27 @@ On supported devices, the app may request permission for critical alerts:
- You can **skip** this step if you don't need breakthrough notifications
- Configure or revoke later in Android notification settings
### Reviewing permissions later
**Settings → Permissions** summarizes where every runtime permission stands. It reads _All allowed_ when nothing needs you, and names the count when something does — opening itself automatically in that case. Tap the row to see the full list at any time:
State | What tapping the row does |
------------------------------------------- | -------------------------------------------------------------------------------------------- |
**Allowed** | Opens the system page, so you can review or revoke it |
**Not asked yet** | Requests it |
**Denied — tap to allow** | Explains what the permission is for, then asks again if you agree |
**Blocked — tap to open system settings** | Android will no longer show its dialog, so this opens the page where you can turn it back on |
**Not required on this version of Android** | Nothing — the permission does not exist on your device |
This matters most for notifications. The app used to ask for them in exactly one place — the setup flow — so declining there meant no message, new-node, or low-battery alerts, with nothing in the app that could ask again. Android itself stops showing the dialog once you have declined firmly (a second denial on Android 11 and newer), at which point this row switches to **Blocked** and sends you to the system settings page instead.
## After Setup
Once permissions are granted, the app transitions to the main interface. Your first action should be connecting to a Meshtastic radio — see [Connections](connections) for detailed instructions.
&gt; 💡 **Tip:** If you skipped any permissions during setup, you can grant them later through **Android Settings → Apps → Meshtastic → Permissions**. The app will prompt you again if a missing permission blocks a feature you try to use.
&gt; 💡 **Tip:** If you skipped any permissions during setup, open **Settings → Permissions** in the app. Every runtime permission is listed there with its current state and a way back to it — including notifications, which the system will not prompt for a second time on its own.
Features also ask in context. Tapping **Scan** on the Connections screen with Bluetooth permission missing explains what it is for and offers to request it; once Android stops prompting, the same control opens the system settings page instead of doing nothing.
## What's Next?
+12 -1
View File
@@ -29,7 +29,18 @@ Use the transport selector — a segmented button row below the connection card
![Transport selector](../../assets/screenshots/connections_transport_filters.png)
&gt; 💡 **Tip:** If your device doesn't appear, check that Bluetooth and Location permissions are granted, and that the radio is not already connected to another device.
&gt; 💡 **Tip:** If your device doesn't appear, check that the radio is not already connected to another device or out of range.
The screen names anything on the app's side that is blocking a scan, with the fix attached:
What you see | What it means |
--------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
A card asking for **Nearby devices** | The permission has not been granted. **Grant permission** requests it; once Android stops prompting, the button becomes **Open settings**. |
**Bluetooth is off** | The adapter is disabled — the card opens Bluetooth settings. |
**Bluetooth scanning also needs location services** | Android 11 and older only: the permission is held but the system location toggle is off. |
No card, empty list | Nothing on this side is blocking the scan — the radio is out of range, off, or already connected elsewhere. |
Tapping **Scan** after you have declined the permission once explains what it is for before asking again, and lets you decline again without being cornered.
### Connection Status
+20 -4
View File
@@ -13,7 +13,7 @@ Welcome to Meshtastic! This guide walks you through the initial setup of the Mes
## First Launch
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or you can skip and configure permissions later in Android settings.
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or skipped — nothing here is a one-time offer. Every permission can be reviewed and granted later from **Settings → Permissions** inside the app.
### Welcome Screen
@@ -42,7 +42,7 @@ Grant both permissions when prompted. Without Bluetooth, you'll need to use USB
### Location Permission
&gt; ⚠️ **Why is location required for Bluetooth?** Android requires location permission to discover nearby Bluetooth Low Energy devices. This is an Android system requirement, not a Meshtastic-specific choice.
&gt; ⚠️ **Is location required for Bluetooth?** On **Android 11 and older**, yes — those releases treat a Bluetooth scan as a location capability, so the app asks for Location instead of "Nearby devices", and system **Location Services** must also be switched on for a scan to return anything. There you will see **one** location step rather than two, on the Bluetooth screen, because it is a single system permission — and asking twice for it would push you toward the point where Android stops offering the dialog at all (a second denial on Android 11; the "Don't ask again" checkbox on Android 10 and older). On **Android 12 and newer** the two are separate: "Nearby devices" is declared `neverForLocation`, and declining Location does not stop you finding or connecting to a radio.
Meshtastic also uses your location for:
@@ -55,7 +55,7 @@ Grant **"While using the app"** or **"Always"** depending on your preference:
- **While using the app** — position updates only when the app is open
- **Always** — enables background position updates for always-on mesh presence
If denied, Bluetooth scanning will not function and your node will not report a position.
Declining leaves the rest of the app working: on Android 12 and newer, Bluetooth is unaffected and only the map position and position sharing are disabled. On Android 11 and older, Bluetooth scanning also stops, because that is the permission Android gates it behind.
### Notifications Permission
@@ -76,11 +76,27 @@ On supported devices, the app may request permission for critical alerts:
- You can **skip** this step if you don't need breakthrough notifications
- Configure or revoke later in Android notification settings
### Reviewing permissions later
**Settings → Permissions** summarizes where every runtime permission stands. It reads _All allowed_ when nothing needs you, and names the count when something does — opening itself automatically in that case. Tap the row to see the full list at any time:
State | What tapping the row does |
------------------------------------------- | -------------------------------------------------------------------------------------------- |
**Allowed** | Opens the system page, so you can review or revoke it |
**Not asked yet** | Requests it |
**Denied — tap to allow** | Explains what the permission is for, then asks again if you agree |
**Blocked — tap to open system settings** | Android will no longer show its dialog, so this opens the page where you can turn it back on |
**Not required on this version of Android** | Nothing — the permission does not exist on your device |
This matters most for notifications. The app used to ask for them in exactly one place — the setup flow — so declining there meant no message, new-node, or low-battery alerts, with nothing in the app that could ask again. Android itself stops showing the dialog once you have declined firmly (a second denial on Android 11 and newer), at which point this row switches to **Blocked** and sends you to the system settings page instead.
## After Setup
Once permissions are granted, the app transitions to the main interface. Your first action should be connecting to a Meshtastic radio — see [Connections](connections) for detailed instructions.
&gt; 💡 **Tip:** If you skipped any permissions during setup, you can grant them later through **Android Settings → Apps → Meshtastic → Permissions**. The app will prompt you again if a missing permission blocks a feature you try to use.
&gt; 💡 **Tip:** If you skipped any permissions during setup, open **Settings → Permissions** in the app. Every runtime permission is listed there with its current state and a way back to it — including notifications, which the system will not prompt for a second time on its own.
Features also ask in context. Tapping **Scan** on the Connections screen with Bluetooth permission missing explains what it is for and offers to request it; once Android stops prompting, the same control opens the system settings page instead of doing nothing.
## What's Next?
+12 -1
View File
@@ -29,7 +29,18 @@ Use the transport selector — a segmented button row below the connection card
![Transport selector](../../assets/screenshots/connections_transport_filters.png)
&gt; 💡 **Tip:** If your device doesn't appear, check that Bluetooth and Location permissions are granted, and that the radio is not already connected to another device.
&gt; 💡 **Tip:** If your device doesn't appear, check that the radio is not already connected to another device or out of range.
The screen names anything on the app's side that is blocking a scan, with the fix attached:
What you see | What it means |
--------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
A card asking for **Nearby devices** | The permission has not been granted. **Grant permission** requests it; once Android stops prompting, the button becomes **Open settings**. |
**Bluetooth is off** | The adapter is disabled — the card opens Bluetooth settings. |
**Bluetooth scanning also needs location services** | Android 11 and older only: the permission is held but the system location toggle is off. |
No card, empty list | Nothing on this side is blocking the scan — the radio is out of range, off, or already connected elsewhere. |
Tapping **Scan** after you have declined the permission once explains what it is for before asking again, and lets you decline again without being cornered.
### Connection Status
+20 -4
View File
@@ -13,7 +13,7 @@ Welcome to Meshtastic! This guide walks you through the initial setup of the Mes
## First Launch
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or you can skip and configure permissions later in Android settings.
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or skipped — nothing here is a one-time offer. Every permission can be reviewed and granted later from **Settings → Permissions** inside the app.
### Welcome Screen
@@ -42,7 +42,7 @@ Grant both permissions when prompted. Without Bluetooth, you'll need to use USB
### Location Permission
&gt; ⚠️ **Why is location required for Bluetooth?** Android requires location permission to discover nearby Bluetooth Low Energy devices. This is an Android system requirement, not a Meshtastic-specific choice.
&gt; ⚠️ **Is location required for Bluetooth?** On **Android 11 and older**, yes — those releases treat a Bluetooth scan as a location capability, so the app asks for Location instead of "Nearby devices", and system **Location Services** must also be switched on for a scan to return anything. There you will see **one** location step rather than two, on the Bluetooth screen, because it is a single system permission — and asking twice for it would push you toward the point where Android stops offering the dialog at all (a second denial on Android 11; the "Don't ask again" checkbox on Android 10 and older). On **Android 12 and newer** the two are separate: "Nearby devices" is declared `neverForLocation`, and declining Location does not stop you finding or connecting to a radio.
Meshtastic also uses your location for:
@@ -55,7 +55,7 @@ Grant **"While using the app"** or **"Always"** depending on your preference:
- **While using the app** — position updates only when the app is open
- **Always** — enables background position updates for always-on mesh presence
If denied, Bluetooth scanning will not function and your node will not report a position.
Declining leaves the rest of the app working: on Android 12 and newer, Bluetooth is unaffected and only the map position and position sharing are disabled. On Android 11 and older, Bluetooth scanning also stops, because that is the permission Android gates it behind.
### Notifications Permission
@@ -76,11 +76,27 @@ On supported devices, the app may request permission for critical alerts:
- You can **skip** this step if you don't need breakthrough notifications
- Configure or revoke later in Android notification settings
### Reviewing permissions later
**Settings → Permissions** summarizes where every runtime permission stands. It reads _All allowed_ when nothing needs you, and names the count when something does — opening itself automatically in that case. Tap the row to see the full list at any time:
State | What tapping the row does |
------------------------------------------- | -------------------------------------------------------------------------------------------- |
**Allowed** | Opens the system page, so you can review or revoke it |
**Not asked yet** | Requests it |
**Denied — tap to allow** | Explains what the permission is for, then asks again if you agree |
**Blocked — tap to open system settings** | Android will no longer show its dialog, so this opens the page where you can turn it back on |
**Not required on this version of Android** | Nothing — the permission does not exist on your device |
This matters most for notifications. The app used to ask for them in exactly one place — the setup flow — so declining there meant no message, new-node, or low-battery alerts, with nothing in the app that could ask again. Android itself stops showing the dialog once you have declined firmly (a second denial on Android 11 and newer), at which point this row switches to **Blocked** and sends you to the system settings page instead.
## After Setup
Once permissions are granted, the app transitions to the main interface. Your first action should be connecting to a Meshtastic radio — see [Connections](connections) for detailed instructions.
&gt; 💡 **Tip:** If you skipped any permissions during setup, you can grant them later through **Android Settings → Apps → Meshtastic → Permissions**. The app will prompt you again if a missing permission blocks a feature you try to use.
&gt; 💡 **Tip:** If you skipped any permissions during setup, open **Settings → Permissions** in the app. Every runtime permission is listed there with its current state and a way back to it — including notifications, which the system will not prompt for a second time on its own.
Features also ask in context. Tapping **Scan** on the Connections screen with Bluetooth permission missing explains what it is for and offers to request it; once Android stops prompting, the same control opens the system settings page instead of doing nothing.
## What's Next?
+12 -1
View File
@@ -29,7 +29,18 @@ Use the transport selector — a segmented button row below the connection card
![Transport selector](../../assets/screenshots/connections_transport_filters.png)
&gt; 💡 **Tip:** If your device doesn't appear, check that Bluetooth and Location permissions are granted, and that the radio is not already connected to another device.
&gt; 💡 **Tip:** If your device doesn't appear, check that the radio is not already connected to another device or out of range.
The screen names anything on the app's side that is blocking a scan, with the fix attached:
What you see | What it means |
--------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
A card asking for **Nearby devices** | The permission has not been granted. **Grant permission** requests it; once Android stops prompting, the button becomes **Open settings**. |
**Bluetooth is off** | The adapter is disabled — the card opens Bluetooth settings. |
**Bluetooth scanning also needs location services** | Android 11 and older only: the permission is held but the system location toggle is off. |
No card, empty list | Nothing on this side is blocking the scan — the radio is out of range, off, or already connected elsewhere. |
Tapping **Scan** after you have declined the permission once explains what it is for before asking again, and lets you decline again without being cornered.
### Connection Status
+20 -4
View File
@@ -13,7 +13,7 @@ Welcome to Meshtastic! This guide walks you through the initial setup of the Mes
## First Launch
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or you can skip and configure permissions later in Android settings.
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or skipped — nothing here is a one-time offer. Every permission can be reviewed and granted later from **Settings → Permissions** inside the app.
### Welcome Screen
@@ -42,7 +42,7 @@ Grant both permissions when prompted. Without Bluetooth, you'll need to use USB
### Location Permission
&gt; ⚠️ **Why is location required for Bluetooth?** Android requires location permission to discover nearby Bluetooth Low Energy devices. This is an Android system requirement, not a Meshtastic-specific choice.
&gt; ⚠️ **Is location required for Bluetooth?** On **Android 11 and older**, yes — those releases treat a Bluetooth scan as a location capability, so the app asks for Location instead of "Nearby devices", and system **Location Services** must also be switched on for a scan to return anything. There you will see **one** location step rather than two, on the Bluetooth screen, because it is a single system permission — and asking twice for it would push you toward the point where Android stops offering the dialog at all (a second denial on Android 11; the "Don't ask again" checkbox on Android 10 and older). On **Android 12 and newer** the two are separate: "Nearby devices" is declared `neverForLocation`, and declining Location does not stop you finding or connecting to a radio.
Meshtastic also uses your location for:
@@ -55,7 +55,7 @@ Grant **"While using the app"** or **"Always"** depending on your preference:
- **While using the app** — position updates only when the app is open
- **Always** — enables background position updates for always-on mesh presence
If denied, Bluetooth scanning will not function and your node will not report a position.
Declining leaves the rest of the app working: on Android 12 and newer, Bluetooth is unaffected and only the map position and position sharing are disabled. On Android 11 and older, Bluetooth scanning also stops, because that is the permission Android gates it behind.
### Notifications Permission
@@ -76,11 +76,27 @@ On supported devices, the app may request permission for critical alerts:
- You can **skip** this step if you don't need breakthrough notifications
- Configure or revoke later in Android notification settings
### Reviewing permissions later
**Settings → Permissions** summarizes where every runtime permission stands. It reads _All allowed_ when nothing needs you, and names the count when something does — opening itself automatically in that case. Tap the row to see the full list at any time:
State | What tapping the row does |
------------------------------------------- | -------------------------------------------------------------------------------------------- |
**Allowed** | Opens the system page, so you can review or revoke it |
**Not asked yet** | Requests it |
**Denied — tap to allow** | Explains what the permission is for, then asks again if you agree |
**Blocked — tap to open system settings** | Android will no longer show its dialog, so this opens the page where you can turn it back on |
**Not required on this version of Android** | Nothing — the permission does not exist on your device |
This matters most for notifications. The app used to ask for them in exactly one place — the setup flow — so declining there meant no message, new-node, or low-battery alerts, with nothing in the app that could ask again. Android itself stops showing the dialog once you have declined firmly (a second denial on Android 11 and newer), at which point this row switches to **Blocked** and sends you to the system settings page instead.
## After Setup
Once permissions are granted, the app transitions to the main interface. Your first action should be connecting to a Meshtastic radio — see [Connections](connections) for detailed instructions.
&gt; 💡 **Tip:** If you skipped any permissions during setup, you can grant them later through **Android Settings → Apps → Meshtastic → Permissions**. The app will prompt you again if a missing permission blocks a feature you try to use.
&gt; 💡 **Tip:** If you skipped any permissions during setup, open **Settings → Permissions** in the app. Every runtime permission is listed there with its current state and a way back to it — including notifications, which the system will not prompt for a second time on its own.
Features also ask in context. Tapping **Scan** on the Connections screen with Bluetooth permission missing explains what it is for and offers to request it; once Android stops prompting, the same control opens the system settings page instead of doing nothing.
## What's Next?
+12 -1
View File
@@ -29,7 +29,18 @@ Use the transport selector — a segmented button row below the connection card
![Transport selector](../../assets/screenshots/connections_transport_filters.png)
&gt; 💡 **Tip:** If your device doesn't appear, check that Bluetooth and Location permissions are granted, and that the radio is not already connected to another device.
&gt; 💡 **Tip:** If your device doesn't appear, check that the radio is not already connected to another device or out of range.
The screen names anything on the app's side that is blocking a scan, with the fix attached:
What you see | What it means |
--------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
A card asking for **Nearby devices** | The permission has not been granted. **Grant permission** requests it; once Android stops prompting, the button becomes **Open settings**. |
**Bluetooth is off** | The adapter is disabled — the card opens Bluetooth settings. |
**Bluetooth scanning also needs location services** | Android 11 and older only: the permission is held but the system location toggle is off. |
No card, empty list | Nothing on this side is blocking the scan — the radio is out of range, off, or already connected elsewhere. |
Tapping **Scan** after you have declined the permission once explains what it is for before asking again, and lets you decline again without being cornered.
### Connection Status
+20 -4
View File
@@ -13,7 +13,7 @@ Welcome to Meshtastic! This guide walks you through the initial setup of the Mes
## First Launch
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or you can skip and configure permissions later in Android settings.
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or skipped — nothing here is a one-time offer. Every permission can be reviewed and granted later from **Settings → Permissions** inside the app.
### Welcome Screen
@@ -42,7 +42,7 @@ Grant both permissions when prompted. Without Bluetooth, you'll need to use USB
### Location Permission
&gt; ⚠️ **Why is location required for Bluetooth?** Android requires location permission to discover nearby Bluetooth Low Energy devices. This is an Android system requirement, not a Meshtastic-specific choice.
&gt; ⚠️ **Is location required for Bluetooth?** On **Android 11 and older**, yes — those releases treat a Bluetooth scan as a location capability, so the app asks for Location instead of "Nearby devices", and system **Location Services** must also be switched on for a scan to return anything. There you will see **one** location step rather than two, on the Bluetooth screen, because it is a single system permission — and asking twice for it would push you toward the point where Android stops offering the dialog at all (a second denial on Android 11; the "Don't ask again" checkbox on Android 10 and older). On **Android 12 and newer** the two are separate: "Nearby devices" is declared `neverForLocation`, and declining Location does not stop you finding or connecting to a radio.
Meshtastic also uses your location for:
@@ -55,7 +55,7 @@ Grant **"While using the app"** or **"Always"** depending on your preference:
- **While using the app** — position updates only when the app is open
- **Always** — enables background position updates for always-on mesh presence
If denied, Bluetooth scanning will not function and your node will not report a position.
Declining leaves the rest of the app working: on Android 12 and newer, Bluetooth is unaffected and only the map position and position sharing are disabled. On Android 11 and older, Bluetooth scanning also stops, because that is the permission Android gates it behind.
### Notifications Permission
@@ -76,11 +76,27 @@ On supported devices, the app may request permission for critical alerts:
- You can **skip** this step if you don't need breakthrough notifications
- Configure or revoke later in Android notification settings
### Reviewing permissions later
**Settings → Permissions** summarizes where every runtime permission stands. It reads _All allowed_ when nothing needs you, and names the count when something does — opening itself automatically in that case. Tap the row to see the full list at any time:
State | What tapping the row does |
------------------------------------------- | -------------------------------------------------------------------------------------------- |
**Allowed** | Opens the system page, so you can review or revoke it |
**Not asked yet** | Requests it |
**Denied — tap to allow** | Explains what the permission is for, then asks again if you agree |
**Blocked — tap to open system settings** | Android will no longer show its dialog, so this opens the page where you can turn it back on |
**Not required on this version of Android** | Nothing — the permission does not exist on your device |
This matters most for notifications. The app used to ask for them in exactly one place — the setup flow — so declining there meant no message, new-node, or low-battery alerts, with nothing in the app that could ask again. Android itself stops showing the dialog once you have declined firmly (a second denial on Android 11 and newer), at which point this row switches to **Blocked** and sends you to the system settings page instead.
## After Setup
Once permissions are granted, the app transitions to the main interface. Your first action should be connecting to a Meshtastic radio — see [Connections](connections) for detailed instructions.
&gt; 💡 **Tip:** If you skipped any permissions during setup, you can grant them later through **Android Settings → Apps → Meshtastic → Permissions**. The app will prompt you again if a missing permission blocks a feature you try to use.
&gt; 💡 **Tip:** If you skipped any permissions during setup, open **Settings → Permissions** in the app. Every runtime permission is listed there with its current state and a way back to it — including notifications, which the system will not prompt for a second time on its own.
Features also ask in context. Tapping **Scan** on the Connections screen with Bluetooth permission missing explains what it is for and offers to request it; once Android stops prompting, the same control opens the system settings page instead of doing nothing.
## What's Next?
+12 -1
View File
@@ -29,7 +29,18 @@ Bluetooth Low Energy は、Android で標準的かつ最も一般的な接続方
![接続方式のセレクター](../../assets/screenshots/connections_transport_filters.png)
&gt; 💡 **ヒント:** デバイスが表示されない場合は、Bluetooth と位置情報の権限が許可されているか、また無線機が別のデバイスにすでに接続されていないかを確認してください。
&gt; 💡 **Tip:** If your device doesn't appear, check that the radio is not already connected to another device or out of range.
The screen names anything on the app's side that is blocking a scan, with the fix attached:
What you see | 意味 |
--------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
A card asking for **Nearby devices** | The permission has not been granted. **Grant permission** requests it; once Android stops prompting, the button becomes **Open settings**. |
**Bluetooth is off** | The adapter is disabled — the card opens Bluetooth settings. |
**Bluetooth scanning also needs location services** | Android 11 and older only: the permission is held but the system location toggle is off. |
No card, empty list | Nothing on this side is blocking the scan — the radio is out of range, off, or already connected elsewhere. |
Tapping **Scan** after you have declined the permission once explains what it is for before asking again, and lets you decline again without being cornered.
### 接続ステータス
+20 -4
View File
@@ -13,7 +13,7 @@ Meshtastic へようこそ! このガイドでは、Meshtastic Android アプ
## 初回起動
アプリを初めて開くと、必要な権限と設定を構成するための導入フローが案内されます。 各ステップは順番に完了することも、スキップして後で Android の設定で権限を構成することもできます。
アプリを初めて開くと、必要な権限と設定を構成するための導入フローが案内されます。 Each step can be completed in order, or skipped — nothing here is a one-time offer. Every permission can be reviewed and granted later from **Settings → Permissions** inside the app.
### ようこそ画面
@@ -42,7 +42,7 @@ Bluetooth は、スマートフォンと Meshtastic 無線機の主な接続方
### 位置情報の権限
&gt; ⚠️ **なぜ Bluetooth に位置情報が必要なのですか?** Android では、近くの Bluetooth Low Energy デバイスを検出するために位置情報の権限が必要です。 これは Android システムの要件であり、Meshtastic 固有の仕様ではありません。
&gt; ⚠️ **Is location required for Bluetooth?** On **Android 11 and older**, yes — those releases treat a Bluetooth scan as a location capability, so the app asks for Location instead of "Nearby devices", and system **Location Services** must also be switched on for a scan to return anything. There you will see **one** location step rather than two, on the Bluetooth screen, because it is a single system permission — and asking twice for it would push you toward the point where Android stops offering the dialog at all (a second denial on Android 11; the "Don't ask again" checkbox on Android 10 and older). On **Android 12 and newer** the two are separate: "Nearby devices" is declared `neverForLocation`, and declining Location does not stop you finding or connecting to a radio.
Meshtastic は、次の目的でも位置情報を使用します:
@@ -55,7 +55,7 @@ Meshtastic は、次の目的でも位置情報を使用します:
- **アプリの使用中のみ**:アプリが開いているときだけ位置情報を更新します
- **常に許可**:常時メッシュに存在するために、バックグラウンドでの位置情報更新を有効にします
拒否すると、Bluetooth スキャンが機能せず、ノードは位置情報を報告しません。
Declining leaves the rest of the app working: on Android 12 and newer, Bluetooth is unaffected and only the map position and position sharing are disabled. On Android 11 and older, Bluetooth scanning also stops, because that is the permission Android gates it behind.
### 通知の権限
@@ -76,11 +76,27 @@ Meshtastic は、次の目的でも位置情報を使用します:
- 突破通知が不要な場合は、このステップを**スキップ**できます
- 後で Android の通知設定で構成または取り消しができます
### Reviewing permissions later
**Settings → Permissions** summarizes where every runtime permission stands. It reads _All allowed_ when nothing needs you, and names the count when something does — opening itself automatically in that case. Tap the row to see the full list at any time:
状態 | What tapping the row does |
------------------------------------------- | -------------------------------------------------------------------------------------------- |
**Allowed** | Opens the system page, so you can review or revoke it |
**Not asked yet** | Requests it |
**Denied — tap to allow** | Explains what the permission is for, then asks again if you agree |
**Blocked — tap to open system settings** | Android will no longer show its dialog, so this opens the page where you can turn it back on |
**Not required on this version of Android** | Nothing — the permission does not exist on your device |
This matters most for notifications. The app used to ask for them in exactly one place — the setup flow — so declining there meant no message, new-node, or low-battery alerts, with nothing in the app that could ask again. Android itself stops showing the dialog once you have declined firmly (a second denial on Android 11 and newer), at which point this row switches to **Blocked** and sends you to the system settings page instead.
## セットアップ後
権限を許可すると、アプリはメイン画面に移行します。 最初に行うべきことは、Meshtastic 無線機への接続です。詳しい手順は[接続](connections)を参照してください。
&gt; 💡 **ヒント:** セットアップ中に権限をスキップした場合は、後で\*\*「Android 設定 → アプリ → Meshtastic → 権限」\*\*から許可できます。 不足している権限が、使おうとする機能を妨げる場合は、アプリが再度確認を求めます。
&gt; 💡 **Tip:** If you skipped any permissions during setup, open **Settings → Permissions** in the app. Every runtime permission is listed there with its current state and a way back to it — including notifications, which the system will not prompt for a second time on its own.
Features also ask in context. Tapping **Scan** on the Connections screen with Bluetooth permission missing explains what it is for and offers to request it; once Android stops prompting, the same control opens the system settings page instead of doing nothing.
## 次のステップ
+12 -1
View File
@@ -29,7 +29,18 @@ Use the transport selector — a segmented button row below the connection card
![Transport selector](../../assets/screenshots/connections_transport_filters.png)
&gt; 💡 **Tip:** If your device doesn't appear, check that Bluetooth and Location permissions are granted, and that the radio is not already connected to another device.
&gt; 💡 **Tip:** If your device doesn't appear, check that the radio is not already connected to another device or out of range.
The screen names anything on the app's side that is blocking a scan, with the fix attached:
What you see | What it means |
--------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
A card asking for **Nearby devices** | The permission has not been granted. **Grant permission** requests it; once Android stops prompting, the button becomes **Open settings**. |
**Bluetooth is off** | The adapter is disabled — the card opens Bluetooth settings. |
**Bluetooth scanning also needs location services** | Android 11 and older only: the permission is held but the system location toggle is off. |
No card, empty list | Nothing on this side is blocking the scan — the radio is out of range, off, or already connected elsewhere. |
Tapping **Scan** after you have declined the permission once explains what it is for before asking again, and lets you decline again without being cornered.
### Connection Status
+20 -4
View File
@@ -13,7 +13,7 @@ Welcome to Meshtastic! This guide walks you through the initial setup of the Mes
## First Launch
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or you can skip and configure permissions later in Android settings.
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or skipped — nothing here is a one-time offer. Every permission can be reviewed and granted later from **Settings → Permissions** inside the app.
### Welcome Screen
@@ -42,7 +42,7 @@ Grant both permissions when prompted. Without Bluetooth, you'll need to use USB
### Location Permission
&gt; ⚠️ **Why is location required for Bluetooth?** Android requires location permission to discover nearby Bluetooth Low Energy devices. This is an Android system requirement, not a Meshtastic-specific choice.
&gt; ⚠️ **Is location required for Bluetooth?** On **Android 11 and older**, yes — those releases treat a Bluetooth scan as a location capability, so the app asks for Location instead of "Nearby devices", and system **Location Services** must also be switched on for a scan to return anything. There you will see **one** location step rather than two, on the Bluetooth screen, because it is a single system permission — and asking twice for it would push you toward the point where Android stops offering the dialog at all (a second denial on Android 11; the "Don't ask again" checkbox on Android 10 and older). On **Android 12 and newer** the two are separate: "Nearby devices" is declared `neverForLocation`, and declining Location does not stop you finding or connecting to a radio.
Meshtastic also uses your location for:
@@ -55,7 +55,7 @@ Grant **"While using the app"** or **"Always"** depending on your preference:
- **While using the app** — position updates only when the app is open
- **Always** — enables background position updates for always-on mesh presence
If denied, Bluetooth scanning will not function and your node will not report a position.
Declining leaves the rest of the app working: on Android 12 and newer, Bluetooth is unaffected and only the map position and position sharing are disabled. On Android 11 and older, Bluetooth scanning also stops, because that is the permission Android gates it behind.
### Notifications Permission
@@ -76,11 +76,27 @@ On supported devices, the app may request permission for critical alerts:
- You can **skip** this step if you don't need breakthrough notifications
- Configure or revoke later in Android notification settings
### Reviewing permissions later
**Settings → Permissions** summarizes where every runtime permission stands. It reads _All allowed_ when nothing needs you, and names the count when something does — opening itself automatically in that case. Tap the row to see the full list at any time:
State | What tapping the row does |
------------------------------------------- | -------------------------------------------------------------------------------------------- |
**Allowed** | Opens the system page, so you can review or revoke it |
**Not asked yet** | Requests it |
**Denied — tap to allow** | Explains what the permission is for, then asks again if you agree |
**Blocked — tap to open system settings** | Android will no longer show its dialog, so this opens the page where you can turn it back on |
**Not required on this version of Android** | Nothing — the permission does not exist on your device |
This matters most for notifications. The app used to ask for them in exactly one place — the setup flow — so declining there meant no message, new-node, or low-battery alerts, with nothing in the app that could ask again. Android itself stops showing the dialog once you have declined firmly (a second denial on Android 11 and newer), at which point this row switches to **Blocked** and sends you to the system settings page instead.
## After Setup
Once permissions are granted, the app transitions to the main interface. Your first action should be connecting to a Meshtastic radio — see [Connections](connections) for detailed instructions.
&gt; 💡 **Tip:** If you skipped any permissions during setup, you can grant them later through **Android Settings → Apps → Meshtastic → Permissions**. The app will prompt you again if a missing permission blocks a feature you try to use.
&gt; 💡 **Tip:** If you skipped any permissions during setup, open **Settings → Permissions** in the app. Every runtime permission is listed there with its current state and a way back to it — including notifications, which the system will not prompt for a second time on its own.
Features also ask in context. Tapping **Scan** on the Connections screen with Bluetooth permission missing explains what it is for and offers to request it; once Android stops prompting, the same control opens the system settings page instead of doing nothing.
## What's Next?
+12 -1
View File
@@ -29,7 +29,18 @@ Use the transport selector — a segmented button row below the connection card
![Transport selector](../../assets/screenshots/connections_transport_filters.png)
&gt; 💡 **Tip:** If your device doesn't appear, check that Bluetooth and Location permissions are granted, and that the radio is not already connected to another device.
&gt; 💡 **Tip:** If your device doesn't appear, check that the radio is not already connected to another device or out of range.
The screen names anything on the app's side that is blocking a scan, with the fix attached:
What you see | What it means |
--------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
A card asking for **Nearby devices** | The permission has not been granted. **Grant permission** requests it; once Android stops prompting, the button becomes **Open settings**. |
**Bluetooth is off** | The adapter is disabled — the card opens Bluetooth settings. |
**Bluetooth scanning also needs location services** | Android 11 and older only: the permission is held but the system location toggle is off. |
No card, empty list | Nothing on this side is blocking the scan — the radio is out of range, off, or already connected elsewhere. |
Tapping **Scan** after you have declined the permission once explains what it is for before asking again, and lets you decline again without being cornered.
### Connection Status
+20 -4
View File
@@ -13,7 +13,7 @@ Welcome to Meshtastic! This guide walks you through the initial setup of the Mes
## First Launch
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or you can skip and configure permissions later in Android settings.
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or skipped — nothing here is a one-time offer. Every permission can be reviewed and granted later from **Settings → Permissions** inside the app.
### Welcome Screen
@@ -42,7 +42,7 @@ Grant both permissions when prompted. Without Bluetooth, you'll need to use USB
### Location Permission
&gt; ⚠️ **Why is location required for Bluetooth?** Android requires location permission to discover nearby Bluetooth Low Energy devices. This is an Android system requirement, not a Meshtastic-specific choice.
&gt; ⚠️ **Is location required for Bluetooth?** On **Android 11 and older**, yes — those releases treat a Bluetooth scan as a location capability, so the app asks for Location instead of "Nearby devices", and system **Location Services** must also be switched on for a scan to return anything. There you will see **one** location step rather than two, on the Bluetooth screen, because it is a single system permission — and asking twice for it would push you toward the point where Android stops offering the dialog at all (a second denial on Android 11; the "Don't ask again" checkbox on Android 10 and older). On **Android 12 and newer** the two are separate: "Nearby devices" is declared `neverForLocation`, and declining Location does not stop you finding or connecting to a radio.
Meshtastic also uses your location for:
@@ -55,7 +55,7 @@ Grant **"While using the app"** or **"Always"** depending on your preference:
- **While using the app** — position updates only when the app is open
- **Always** — enables background position updates for always-on mesh presence
If denied, Bluetooth scanning will not function and your node will not report a position.
Declining leaves the rest of the app working: on Android 12 and newer, Bluetooth is unaffected and only the map position and position sharing are disabled. On Android 11 and older, Bluetooth scanning also stops, because that is the permission Android gates it behind.
### Notifications Permission
@@ -76,11 +76,27 @@ On supported devices, the app may request permission for critical alerts:
- You can **skip** this step if you don't need breakthrough notifications
- Configure or revoke later in Android notification settings
### Reviewing permissions later
**Settings → Permissions** summarizes where every runtime permission stands. It reads _All allowed_ when nothing needs you, and names the count when something does — opening itself automatically in that case. Tap the row to see the full list at any time:
State | What tapping the row does |
------------------------------------------- | -------------------------------------------------------------------------------------------- |
**Allowed** | Opens the system page, so you can review or revoke it |
**Not asked yet** | Requests it |
**Denied — tap to allow** | Explains what the permission is for, then asks again if you agree |
**Blocked — tap to open system settings** | Android will no longer show its dialog, so this opens the page where you can turn it back on |
**Not required on this version of Android** | Nothing — the permission does not exist on your device |
This matters most for notifications. The app used to ask for them in exactly one place — the setup flow — so declining there meant no message, new-node, or low-battery alerts, with nothing in the app that could ask again. Android itself stops showing the dialog once you have declined firmly (a second denial on Android 11 and newer), at which point this row switches to **Blocked** and sends you to the system settings page instead.
## After Setup
Once permissions are granted, the app transitions to the main interface. Your first action should be connecting to a Meshtastic radio — see [Connections](connections) for detailed instructions.
&gt; 💡 **Tip:** If you skipped any permissions during setup, you can grant them later through **Android Settings → Apps → Meshtastic → Permissions**. The app will prompt you again if a missing permission blocks a feature you try to use.
&gt; 💡 **Tip:** If you skipped any permissions during setup, open **Settings → Permissions** in the app. Every runtime permission is listed there with its current state and a way back to it — including notifications, which the system will not prompt for a second time on its own.
Features also ask in context. Tapping **Scan** on the Connections screen with Bluetooth permission missing explains what it is for and offers to request it; once Android stops prompting, the same control opens the system settings page instead of doing nothing.
## What's Next?
+12 -1
View File
@@ -29,7 +29,18 @@ Use the transport selector — a segmented button row below the connection card
![Transport selector](../../assets/screenshots/connections_transport_filters.png)
&gt; 💡 **Tip:** If your device doesn't appear, check that Bluetooth and Location permissions are granted, and that the radio is not already connected to another device.
&gt; 💡 **Tip:** If your device doesn't appear, check that the radio is not already connected to another device or out of range.
The screen names anything on the app's side that is blocking a scan, with the fix attached:
What you see | What it means |
--------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
A card asking for **Nearby devices** | The permission has not been granted. **Grant permission** requests it; once Android stops prompting, the button becomes **Open settings**. |
**Bluetooth is off** | The adapter is disabled — the card opens Bluetooth settings. |
**Bluetooth scanning also needs location services** | Android 11 and older only: the permission is held but the system location toggle is off. |
No card, empty list | Nothing on this side is blocking the scan — the radio is out of range, off, or already connected elsewhere. |
Tapping **Scan** after you have declined the permission once explains what it is for before asking again, and lets you decline again without being cornered.
### Connection Status
+20 -4
View File
@@ -13,7 +13,7 @@ Welcome to Meshtastic! This guide walks you through the initial setup of the Mes
## First Launch
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or you can skip and configure permissions later in Android settings.
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or skipped — nothing here is a one-time offer. Every permission can be reviewed and granted later from **Settings → Permissions** inside the app.
### Welcome Screen
@@ -42,7 +42,7 @@ Grant both permissions when prompted. Without Bluetooth, you'll need to use USB
### Location Permission
&gt; ⚠️ **Why is location required for Bluetooth?** Android requires location permission to discover nearby Bluetooth Low Energy devices. This is an Android system requirement, not a Meshtastic-specific choice.
&gt; ⚠️ **Is location required for Bluetooth?** On **Android 11 and older**, yes — those releases treat a Bluetooth scan as a location capability, so the app asks for Location instead of "Nearby devices", and system **Location Services** must also be switched on for a scan to return anything. There you will see **one** location step rather than two, on the Bluetooth screen, because it is a single system permission — and asking twice for it would push you toward the point where Android stops offering the dialog at all (a second denial on Android 11; the "Don't ask again" checkbox on Android 10 and older). On **Android 12 and newer** the two are separate: "Nearby devices" is declared `neverForLocation`, and declining Location does not stop you finding or connecting to a radio.
Meshtastic also uses your location for:
@@ -55,7 +55,7 @@ Grant **"While using the app"** or **"Always"** depending on your preference:
- **While using the app** — position updates only when the app is open
- **Always** — enables background position updates for always-on mesh presence
If denied, Bluetooth scanning will not function and your node will not report a position.
Declining leaves the rest of the app working: on Android 12 and newer, Bluetooth is unaffected and only the map position and position sharing are disabled. On Android 11 and older, Bluetooth scanning also stops, because that is the permission Android gates it behind.
### Notifications Permission
@@ -76,11 +76,27 @@ On supported devices, the app may request permission for critical alerts:
- You can **skip** this step if you don't need breakthrough notifications
- Configure or revoke later in Android notification settings
### Reviewing permissions later
**Settings → Permissions** summarizes where every runtime permission stands. It reads _All allowed_ when nothing needs you, and names the count when something does — opening itself automatically in that case. Tap the row to see the full list at any time:
State | What tapping the row does |
------------------------------------------- | -------------------------------------------------------------------------------------------- |
**Allowed** | Opens the system page, so you can review or revoke it |
**Not asked yet** | Requests it |
**Denied — tap to allow** | Explains what the permission is for, then asks again if you agree |
**Blocked — tap to open system settings** | Android will no longer show its dialog, so this opens the page where you can turn it back on |
**Not required on this version of Android** | Nothing — the permission does not exist on your device |
This matters most for notifications. The app used to ask for them in exactly one place — the setup flow — so declining there meant no message, new-node, or low-battery alerts, with nothing in the app that could ask again. Android itself stops showing the dialog once you have declined firmly (a second denial on Android 11 and newer), at which point this row switches to **Blocked** and sends you to the system settings page instead.
## After Setup
Once permissions are granted, the app transitions to the main interface. Your first action should be connecting to a Meshtastic radio — see [Connections](connections) for detailed instructions.
&gt; 💡 **Tip:** If you skipped any permissions during setup, you can grant them later through **Android Settings → Apps → Meshtastic → Permissions**. The app will prompt you again if a missing permission blocks a feature you try to use.
&gt; 💡 **Tip:** If you skipped any permissions during setup, open **Settings → Permissions** in the app. Every runtime permission is listed there with its current state and a way back to it — including notifications, which the system will not prompt for a second time on its own.
Features also ask in context. Tapping **Scan** on the Connections screen with Bluetooth permission missing explains what it is for and offers to request it; once Android stops prompting, the same control opens the system settings page instead of doing nothing.
## What's Next?
+12 -1
View File
@@ -29,7 +29,18 @@ Use the transport selector — a segmented button row below the connection card
![Transport selector](../../assets/screenshots/connections_transport_filters.png)
&gt; 💡 **Tip:** If your device doesn't appear, check that Bluetooth and Location permissions are granted, and that the radio is not already connected to another device.
&gt; 💡 **Tip:** If your device doesn't appear, check that the radio is not already connected to another device or out of range.
The screen names anything on the app's side that is blocking a scan, with the fix attached:
What you see | What it means |
--------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
A card asking for **Nearby devices** | The permission has not been granted. **Grant permission** requests it; once Android stops prompting, the button becomes **Open settings**. |
**Bluetooth is off** | The adapter is disabled — the card opens Bluetooth settings. |
**Bluetooth scanning also needs location services** | Android 11 and older only: the permission is held but the system location toggle is off. |
No card, empty list | Nothing on this side is blocking the scan — the radio is out of range, off, or already connected elsewhere. |
Tapping **Scan** after you have declined the permission once explains what it is for before asking again, and lets you decline again without being cornered.
### Connection Status
+20 -4
View File
@@ -13,7 +13,7 @@ Welcome to Meshtastic! This guide walks you through the initial setup of the Mes
## First Launch
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or you can skip and configure permissions later in Android settings.
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or skipped — nothing here is a one-time offer. Every permission can be reviewed and granted later from **Settings → Permissions** inside the app.
### Welcome Screen
@@ -42,7 +42,7 @@ Grant both permissions when prompted. Without Bluetooth, you'll need to use USB
### Location Permission
&gt; ⚠️ **Why is location required for Bluetooth?** Android requires location permission to discover nearby Bluetooth Low Energy devices. This is an Android system requirement, not a Meshtastic-specific choice.
&gt; ⚠️ **Is location required for Bluetooth?** On **Android 11 and older**, yes — those releases treat a Bluetooth scan as a location capability, so the app asks for Location instead of "Nearby devices", and system **Location Services** must also be switched on for a scan to return anything. There you will see **one** location step rather than two, on the Bluetooth screen, because it is a single system permission — and asking twice for it would push you toward the point where Android stops offering the dialog at all (a second denial on Android 11; the "Don't ask again" checkbox on Android 10 and older). On **Android 12 and newer** the two are separate: "Nearby devices" is declared `neverForLocation`, and declining Location does not stop you finding or connecting to a radio.
Meshtastic also uses your location for:
@@ -55,7 +55,7 @@ Grant **"While using the app"** or **"Always"** depending on your preference:
- **While using the app** — position updates only when the app is open
- **Always** — enables background position updates for always-on mesh presence
If denied, Bluetooth scanning will not function and your node will not report a position.
Declining leaves the rest of the app working: on Android 12 and newer, Bluetooth is unaffected and only the map position and position sharing are disabled. On Android 11 and older, Bluetooth scanning also stops, because that is the permission Android gates it behind.
### Notifications Permission
@@ -76,11 +76,27 @@ On supported devices, the app may request permission for critical alerts:
- You can **skip** this step if you don't need breakthrough notifications
- Configure or revoke later in Android notification settings
### Reviewing permissions later
**Settings → Permissions** summarizes where every runtime permission stands. It reads _All allowed_ when nothing needs you, and names the count when something does — opening itself automatically in that case. Tap the row to see the full list at any time:
State | What tapping the row does |
------------------------------------------- | -------------------------------------------------------------------------------------------- |
**Allowed** | Opens the system page, so you can review or revoke it |
**Not asked yet** | Requests it |
**Denied — tap to allow** | Explains what the permission is for, then asks again if you agree |
**Blocked — tap to open system settings** | Android will no longer show its dialog, so this opens the page where you can turn it back on |
**Not required on this version of Android** | Nothing — the permission does not exist on your device |
This matters most for notifications. The app used to ask for them in exactly one place — the setup flow — so declining there meant no message, new-node, or low-battery alerts, with nothing in the app that could ask again. Android itself stops showing the dialog once you have declined firmly (a second denial on Android 11 and newer), at which point this row switches to **Blocked** and sends you to the system settings page instead.
## After Setup
Once permissions are granted, the app transitions to the main interface. Your first action should be connecting to a Meshtastic radio — see [Connections](connections) for detailed instructions.
&gt; 💡 **Tip:** If you skipped any permissions during setup, you can grant them later through **Android Settings → Apps → Meshtastic → Permissions**. The app will prompt you again if a missing permission blocks a feature you try to use.
&gt; 💡 **Tip:** If you skipped any permissions during setup, open **Settings → Permissions** in the app. Every runtime permission is listed there with its current state and a way back to it — including notifications, which the system will not prompt for a second time on its own.
Features also ask in context. Tapping **Scan** on the Connections screen with Bluetooth permission missing explains what it is for and offers to request it; once Android stops prompting, the same control opens the system settings page instead of doing nothing.
## What's Next?
+12 -1
View File
@@ -29,7 +29,18 @@ Use the transport selector — a segmented button row below the connection card
![Transport selector](../../assets/screenshots/connections_transport_filters.png)
&gt; 💡 **Tip:** If your device doesn't appear, check that Bluetooth and Location permissions are granted, and that the radio is not already connected to another device.
&gt; 💡 **Tip:** If your device doesn't appear, check that the radio is not already connected to another device or out of range.
The screen names anything on the app's side that is blocking a scan, with the fix attached:
What you see | What it means |
--------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
A card asking for **Nearby devices** | The permission has not been granted. **Grant permission** requests it; once Android stops prompting, the button becomes **Open settings**. |
**Bluetooth is off** | The adapter is disabled — the card opens Bluetooth settings. |
**Bluetooth scanning also needs location services** | Android 11 and older only: the permission is held but the system location toggle is off. |
No card, empty list | Nothing on this side is blocking the scan — the radio is out of range, off, or already connected elsewhere. |
Tapping **Scan** after you have declined the permission once explains what it is for before asking again, and lets you decline again without being cornered.
### Connection Status
+20 -4
View File
@@ -13,7 +13,7 @@ Welcome to Meshtastic! This guide walks you through the initial setup of the Mes
## First Launch
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or you can skip and configure permissions later in Android settings.
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or skipped — nothing here is a one-time offer. Every permission can be reviewed and granted later from **Settings → Permissions** inside the app.
### Welcome Screen
@@ -42,7 +42,7 @@ Grant both permissions when prompted. Without Bluetooth, you'll need to use USB
### Location Permission
&gt; ⚠️ **Why is location required for Bluetooth?** Android requires location permission to discover nearby Bluetooth Low Energy devices. This is an Android system requirement, not a Meshtastic-specific choice.
&gt; ⚠️ **Is location required for Bluetooth?** On **Android 11 and older**, yes — those releases treat a Bluetooth scan as a location capability, so the app asks for Location instead of "Nearby devices", and system **Location Services** must also be switched on for a scan to return anything. There you will see **one** location step rather than two, on the Bluetooth screen, because it is a single system permission — and asking twice for it would push you toward the point where Android stops offering the dialog at all (a second denial on Android 11; the "Don't ask again" checkbox on Android 10 and older). On **Android 12 and newer** the two are separate: "Nearby devices" is declared `neverForLocation`, and declining Location does not stop you finding or connecting to a radio.
Meshtastic also uses your location for:
@@ -55,7 +55,7 @@ Grant **"While using the app"** or **"Always"** depending on your preference:
- **While using the app** — position updates only when the app is open
- **Always** — enables background position updates for always-on mesh presence
If denied, Bluetooth scanning will not function and your node will not report a position.
Declining leaves the rest of the app working: on Android 12 and newer, Bluetooth is unaffected and only the map position and position sharing are disabled. On Android 11 and older, Bluetooth scanning also stops, because that is the permission Android gates it behind.
### Notifications Permission
@@ -76,11 +76,27 @@ On supported devices, the app may request permission for critical alerts:
- You can **skip** this step if you don't need breakthrough notifications
- Configure or revoke later in Android notification settings
### Reviewing permissions later
**Settings → Permissions** summarizes where every runtime permission stands. It reads _All allowed_ when nothing needs you, and names the count when something does — opening itself automatically in that case. Tap the row to see the full list at any time:
State | What tapping the row does |
------------------------------------------- | -------------------------------------------------------------------------------------------- |
**Allowed** | Opens the system page, so you can review or revoke it |
**Not asked yet** | Requests it |
**Denied — tap to allow** | Explains what the permission is for, then asks again if you agree |
**Blocked — tap to open system settings** | Android will no longer show its dialog, so this opens the page where you can turn it back on |
**Not required on this version of Android** | Nothing — the permission does not exist on your device |
This matters most for notifications. The app used to ask for them in exactly one place — the setup flow — so declining there meant no message, new-node, or low-battery alerts, with nothing in the app that could ask again. Android itself stops showing the dialog once you have declined firmly (a second denial on Android 11 and newer), at which point this row switches to **Blocked** and sends you to the system settings page instead.
## After Setup
Once permissions are granted, the app transitions to the main interface. Your first action should be connecting to a Meshtastic radio — see [Connections](connections) for detailed instructions.
&gt; 💡 **Tip:** If you skipped any permissions during setup, you can grant them later through **Android Settings → Apps → Meshtastic → Permissions**. The app will prompt you again if a missing permission blocks a feature you try to use.
&gt; 💡 **Tip:** If you skipped any permissions during setup, open **Settings → Permissions** in the app. Every runtime permission is listed there with its current state and a way back to it — including notifications, which the system will not prompt for a second time on its own.
Features also ask in context. Tapping **Scan** on the Connections screen with Bluetooth permission missing explains what it is for and offers to request it; once Android stops prompting, the same control opens the system settings page instead of doing nothing.
## What's Next?
+12 -1
View File
@@ -29,7 +29,18 @@ Use the transport selector — a segmented button row below the connection card
![Transport selector](../../assets/screenshots/connections_transport_filters.png)
&gt; 💡 **Tip:** If your device doesn't appear, check that Bluetooth and Location permissions are granted, and that the radio is not already connected to another device.
&gt; 💡 **Tip:** If your device doesn't appear, check that the radio is not already connected to another device or out of range.
The screen names anything on the app's side that is blocking a scan, with the fix attached:
What you see | What it means |
--------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
A card asking for **Nearby devices** | The permission has not been granted. **Grant permission** requests it; once Android stops prompting, the button becomes **Open settings**. |
**Bluetooth is off** | The adapter is disabled — the card opens Bluetooth settings. |
**Bluetooth scanning also needs location services** | Android 11 and older only: the permission is held but the system location toggle is off. |
No card, empty list | Nothing on this side is blocking the scan — the radio is out of range, off, or already connected elsewhere. |
Tapping **Scan** after you have declined the permission once explains what it is for before asking again, and lets you decline again without being cornered.
### Connection Status
+20 -4
View File
@@ -13,7 +13,7 @@ Welcome to Meshtastic! This guide walks you through the initial setup of the Mes
## First Launch
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or you can skip and configure permissions later in Android settings.
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or skipped — nothing here is a one-time offer. Every permission can be reviewed and granted later from **Settings → Permissions** inside the app.
### Welcome Screen
@@ -42,7 +42,7 @@ Grant both permissions when prompted. Without Bluetooth, you'll need to use USB
### Location Permission
&gt; ⚠️ **Why is location required for Bluetooth?** Android requires location permission to discover nearby Bluetooth Low Energy devices. This is an Android system requirement, not a Meshtastic-specific choice.
&gt; ⚠️ **Is location required for Bluetooth?** On **Android 11 and older**, yes — those releases treat a Bluetooth scan as a location capability, so the app asks for Location instead of "Nearby devices", and system **Location Services** must also be switched on for a scan to return anything. There you will see **one** location step rather than two, on the Bluetooth screen, because it is a single system permission — and asking twice for it would push you toward the point where Android stops offering the dialog at all (a second denial on Android 11; the "Don't ask again" checkbox on Android 10 and older). On **Android 12 and newer** the two are separate: "Nearby devices" is declared `neverForLocation`, and declining Location does not stop you finding or connecting to a radio.
Meshtastic also uses your location for:
@@ -55,7 +55,7 @@ Grant **"While using the app"** or **"Always"** depending on your preference:
- **While using the app** — position updates only when the app is open
- **Always** — enables background position updates for always-on mesh presence
If denied, Bluetooth scanning will not function and your node will not report a position.
Declining leaves the rest of the app working: on Android 12 and newer, Bluetooth is unaffected and only the map position and position sharing are disabled. On Android 11 and older, Bluetooth scanning also stops, because that is the permission Android gates it behind.
### Notifications Permission
@@ -76,11 +76,27 @@ On supported devices, the app may request permission for critical alerts:
- You can **skip** this step if you don't need breakthrough notifications
- Configure or revoke later in Android notification settings
### Reviewing permissions later
**Settings → Permissions** summarizes where every runtime permission stands. It reads _All allowed_ when nothing needs you, and names the count when something does — opening itself automatically in that case. Tap the row to see the full list at any time:
State | What tapping the row does |
------------------------------------------- | -------------------------------------------------------------------------------------------- |
**Allowed** | Opens the system page, so you can review or revoke it |
**Not asked yet** | Requests it |
**Denied — tap to allow** | Explains what the permission is for, then asks again if you agree |
**Blocked — tap to open system settings** | Android will no longer show its dialog, so this opens the page where you can turn it back on |
**Not required on this version of Android** | Nothing — the permission does not exist on your device |
This matters most for notifications. The app used to ask for them in exactly one place — the setup flow — so declining there meant no message, new-node, or low-battery alerts, with nothing in the app that could ask again. Android itself stops showing the dialog once you have declined firmly (a second denial on Android 11 and newer), at which point this row switches to **Blocked** and sends you to the system settings page instead.
## After Setup
Once permissions are granted, the app transitions to the main interface. Your first action should be connecting to a Meshtastic radio — see [Connections](connections) for detailed instructions.
&gt; 💡 **Tip:** If you skipped any permissions during setup, you can grant them later through **Android Settings → Apps → Meshtastic → Permissions**. The app will prompt you again if a missing permission blocks a feature you try to use.
&gt; 💡 **Tip:** If you skipped any permissions during setup, open **Settings → Permissions** in the app. Every runtime permission is listed there with its current state and a way back to it — including notifications, which the system will not prompt for a second time on its own.
Features also ask in context. Tapping **Scan** on the Connections screen with Bluetooth permission missing explains what it is for and offers to request it; once Android stops prompting, the same control opens the system settings page instead of doing nothing.
## What's Next?
+12 -1
View File
@@ -29,7 +29,18 @@ Use the transport selector — a segmented button row below the connection card
![Transport selector](../../assets/screenshots/connections_transport_filters.png)
&gt; 💡 **Tip:** If your device doesn't appear, check that Bluetooth and Location permissions are granted, and that the radio is not already connected to another device.
&gt; 💡 **Tip:** If your device doesn't appear, check that the radio is not already connected to another device or out of range.
The screen names anything on the app's side that is blocking a scan, with the fix attached:
What you see | What it means |
--------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
A card asking for **Nearby devices** | The permission has not been granted. **Grant permission** requests it; once Android stops prompting, the button becomes **Open settings**. |
**Bluetooth is off** | The adapter is disabled — the card opens Bluetooth settings. |
**Bluetooth scanning also needs location services** | Android 11 and older only: the permission is held but the system location toggle is off. |
No card, empty list | Nothing on this side is blocking the scan — the radio is out of range, off, or already connected elsewhere. |
Tapping **Scan** after you have declined the permission once explains what it is for before asking again, and lets you decline again without being cornered.
### Connection Status
+20 -4
View File
@@ -13,7 +13,7 @@ Welcome to Meshtastic! This guide walks you through the initial setup of the Mes
## First Launch
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or you can skip and configure permissions later in Android settings.
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or skipped — nothing here is a one-time offer. Every permission can be reviewed and granted later from **Settings → Permissions** inside the app.
### Welcome Screen
@@ -42,7 +42,7 @@ Grant both permissions when prompted. Without Bluetooth, you'll need to use USB
### Location Permission
&gt; ⚠️ **Why is location required for Bluetooth?** Android requires location permission to discover nearby Bluetooth Low Energy devices. This is an Android system requirement, not a Meshtastic-specific choice.
&gt; ⚠️ **Is location required for Bluetooth?** On **Android 11 and older**, yes — those releases treat a Bluetooth scan as a location capability, so the app asks for Location instead of "Nearby devices", and system **Location Services** must also be switched on for a scan to return anything. There you will see **one** location step rather than two, on the Bluetooth screen, because it is a single system permission — and asking twice for it would push you toward the point where Android stops offering the dialog at all (a second denial on Android 11; the "Don't ask again" checkbox on Android 10 and older). On **Android 12 and newer** the two are separate: "Nearby devices" is declared `neverForLocation`, and declining Location does not stop you finding or connecting to a radio.
Meshtastic also uses your location for:
@@ -55,7 +55,7 @@ Grant **"While using the app"** or **"Always"** depending on your preference:
- **While using the app** — position updates only when the app is open
- **Always** — enables background position updates for always-on mesh presence
If denied, Bluetooth scanning will not function and your node will not report a position.
Declining leaves the rest of the app working: on Android 12 and newer, Bluetooth is unaffected and only the map position and position sharing are disabled. On Android 11 and older, Bluetooth scanning also stops, because that is the permission Android gates it behind.
### Notifications Permission
@@ -76,11 +76,27 @@ On supported devices, the app may request permission for critical alerts:
- You can **skip** this step if you don't need breakthrough notifications
- Configure or revoke later in Android notification settings
### Reviewing permissions later
**Settings → Permissions** summarizes where every runtime permission stands. It reads _All allowed_ when nothing needs you, and names the count when something does — opening itself automatically in that case. Tap the row to see the full list at any time:
State | What tapping the row does |
------------------------------------------- | -------------------------------------------------------------------------------------------- |
**Allowed** | Opens the system page, so you can review or revoke it |
**Not asked yet** | Requests it |
**Denied — tap to allow** | Explains what the permission is for, then asks again if you agree |
**Blocked — tap to open system settings** | Android will no longer show its dialog, so this opens the page where you can turn it back on |
**Not required on this version of Android** | Nothing — the permission does not exist on your device |
This matters most for notifications. The app used to ask for them in exactly one place — the setup flow — so declining there meant no message, new-node, or low-battery alerts, with nothing in the app that could ask again. Android itself stops showing the dialog once you have declined firmly (a second denial on Android 11 and newer), at which point this row switches to **Blocked** and sends you to the system settings page instead.
## After Setup
Once permissions are granted, the app transitions to the main interface. Your first action should be connecting to a Meshtastic radio — see [Connections](connections) for detailed instructions.
&gt; 💡 **Tip:** If you skipped any permissions during setup, you can grant them later through **Android Settings → Apps → Meshtastic → Permissions**. The app will prompt you again if a missing permission blocks a feature you try to use.
&gt; 💡 **Tip:** If you skipped any permissions during setup, open **Settings → Permissions** in the app. Every runtime permission is listed there with its current state and a way back to it — including notifications, which the system will not prompt for a second time on its own.
Features also ask in context. Tapping **Scan** on the Connections screen with Bluetooth permission missing explains what it is for and offers to request it; once Android stops prompting, the same control opens the system settings page instead of doing nothing.
## What's Next?
+12 -1
View File
@@ -29,7 +29,18 @@ Use the transport selector — a segmented button row below the connection card
![Transport selector](../../assets/screenshots/connections_transport_filters.png)
&gt; 💡 **Tip:** If your device doesn't appear, check that Bluetooth and Location permissions are granted, and that the radio is not already connected to another device.
&gt; 💡 **Tip:** If your device doesn't appear, check that the radio is not already connected to another device or out of range.
The screen names anything on the app's side that is blocking a scan, with the fix attached:
What you see | What it means |
--------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
A card asking for **Nearby devices** | The permission has not been granted. **Grant permission** requests it; once Android stops prompting, the button becomes **Open settings**. |
**Bluetooth is off** | The adapter is disabled — the card opens Bluetooth settings. |
**Bluetooth scanning also needs location services** | Android 11 and older only: the permission is held but the system location toggle is off. |
No card, empty list | Nothing on this side is blocking the scan — the radio is out of range, off, or already connected elsewhere. |
Tapping **Scan** after you have declined the permission once explains what it is for before asking again, and lets you decline again without being cornered.
### Connection Status
+20 -4
View File
@@ -13,7 +13,7 @@ Welcome to Meshtastic! This guide walks you through the initial setup of the Mes
## First Launch
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or you can skip and configure permissions later in Android settings.
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or skipped — nothing here is a one-time offer. Every permission can be reviewed and granted later from **Settings → Permissions** inside the app.
### Welcome Screen
@@ -42,7 +42,7 @@ Grant both permissions when prompted. Without Bluetooth, you'll need to use USB
### Location Permission
&gt; ⚠️ **Why is location required for Bluetooth?** Android requires location permission to discover nearby Bluetooth Low Energy devices. This is an Android system requirement, not a Meshtastic-specific choice.
&gt; ⚠️ **Is location required for Bluetooth?** On **Android 11 and older**, yes — those releases treat a Bluetooth scan as a location capability, so the app asks for Location instead of "Nearby devices", and system **Location Services** must also be switched on for a scan to return anything. There you will see **one** location step rather than two, on the Bluetooth screen, because it is a single system permission — and asking twice for it would push you toward the point where Android stops offering the dialog at all (a second denial on Android 11; the "Don't ask again" checkbox on Android 10 and older). On **Android 12 and newer** the two are separate: "Nearby devices" is declared `neverForLocation`, and declining Location does not stop you finding or connecting to a radio.
Meshtastic also uses your location for:
@@ -55,7 +55,7 @@ Grant **"While using the app"** or **"Always"** depending on your preference:
- **While using the app** — position updates only when the app is open
- **Always** — enables background position updates for always-on mesh presence
If denied, Bluetooth scanning will not function and your node will not report a position.
Declining leaves the rest of the app working: on Android 12 and newer, Bluetooth is unaffected and only the map position and position sharing are disabled. On Android 11 and older, Bluetooth scanning also stops, because that is the permission Android gates it behind.
### Notifications Permission
@@ -76,11 +76,27 @@ On supported devices, the app may request permission for critical alerts:
- You can **skip** this step if you don't need breakthrough notifications
- Configure or revoke later in Android notification settings
### Reviewing permissions later
**Settings → Permissions** summarizes where every runtime permission stands. It reads _All allowed_ when nothing needs you, and names the count when something does — opening itself automatically in that case. Tap the row to see the full list at any time:
State | What tapping the row does |
------------------------------------------- | -------------------------------------------------------------------------------------------- |
**Allowed** | Opens the system page, so you can review or revoke it |
**Not asked yet** | Requests it |
**Denied — tap to allow** | Explains what the permission is for, then asks again if you agree |
**Blocked — tap to open system settings** | Android will no longer show its dialog, so this opens the page where you can turn it back on |
**Not required on this version of Android** | Nothing — the permission does not exist on your device |
This matters most for notifications. The app used to ask for them in exactly one place — the setup flow — so declining there meant no message, new-node, or low-battery alerts, with nothing in the app that could ask again. Android itself stops showing the dialog once you have declined firmly (a second denial on Android 11 and newer), at which point this row switches to **Blocked** and sends you to the system settings page instead.
## After Setup
Once permissions are granted, the app transitions to the main interface. Your first action should be connecting to a Meshtastic radio — see [Connections](connections) for detailed instructions.
&gt; 💡 **Tip:** If you skipped any permissions during setup, you can grant them later through **Android Settings → Apps → Meshtastic → Permissions**. The app will prompt you again if a missing permission blocks a feature you try to use.
&gt; 💡 **Tip:** If you skipped any permissions during setup, open **Settings → Permissions** in the app. Every runtime permission is listed there with its current state and a way back to it — including notifications, which the system will not prompt for a second time on its own.
Features also ask in context. Tapping **Scan** on the Connections screen with Bluetooth permission missing explains what it is for and offers to request it; once Android stops prompting, the same control opens the system settings page instead of doing nothing.
## What's Next?
+12 -1
View File
@@ -29,7 +29,18 @@ Bluetooth Low Energy является наиболее распростране
![Селектор транспорта](../../assets/screenshots/connections_transport_filters.png)
&gt; 💡 **Подсказка:** Если ваше радио Meshtastic не отображается, проверьте, предоставлены ли разрешения на Bluetooth и геолокацию, а также не подключено ли ваше радио к другому устройству.
&gt; 💡 **Tip:** If your device doesn't appear, check that the radio is not already connected to another device or out of range.
The screen names anything on the app's side that is blocking a scan, with the fix attached:
What you see | Что это значит |
--------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
A card asking for **Nearby devices** | The permission has not been granted. **Grant permission** requests it; once Android stops prompting, the button becomes **Open settings**. |
**Bluetooth is off** | The adapter is disabled — the card opens Bluetooth settings. |
**Bluetooth scanning also needs location services** | Android 11 and older only: the permission is held but the system location toggle is off. |
No card, empty list | Nothing on this side is blocking the scan — the radio is out of range, off, or already connected elsewhere. |
Tapping **Scan** after you have declined the permission once explains what it is for before asking again, and lets you decline again without being cornered.
### Статус подключения
+20 -4
View File
@@ -13,7 +13,7 @@
## Первый запуск
Когда ты запускаешь приложение впервые, то будет предложено пройти через начальный процесс, который поможет настроить основные разрешения и параметры. Каждый шаг нужно выполнить по порядку, или же можешь пропустить его и настроить разрешения позже в настройках Android.
Когда ты запускаешь приложение впервые, то будет предложено пройти через начальный процесс, который поможет настроить основные разрешения и параметры. Each step can be completed in order, or skipped — nothing here is a one-time offer. Every permission can be reviewed and granted later from **Settings → Permissions** inside the app.
### Экран приветствия
@@ -42,7 +42,7 @@ Bluetooth является основным методом соединения
### Разрешение на доступ к местоположению
&gt; ⚠️ **Почему для Bluetooth требуется местоположение?** Android требует разрешение на определение местоположения для обнаружения устройств Bluetooth Low Energy поблизости. Это требование системы Android, а не специфический выбор Meshtastic.
&gt; ⚠️ **Is location required for Bluetooth?** On **Android 11 and older**, yes — those releases treat a Bluetooth scan as a location capability, so the app asks for Location instead of "Nearby devices", and system **Location Services** must also be switched on for a scan to return anything. There you will see **one** location step rather than two, on the Bluetooth screen, because it is a single system permission — and asking twice for it would push you toward the point where Android stops offering the dialog at all (a second denial on Android 11; the "Don't ask again" checkbox on Android 10 and older). On **Android 12 and newer** the two are separate: "Nearby devices" is declared `neverForLocation`, and declining Location does not stop you finding or connecting to a radio.
Meshtastic также использует местоположение для:
@@ -55,7 +55,7 @@ Meshtastic также использует местоположение для:
- **При использовании приложения** — обновление местоположения происходит только когда приложение открыто
- **Всегда** — включает обновления позиции в фоновом режиме для активного присутствия в сети
Если доступ будет запрещен, сканирование Bluetooth не будет работать, и нода не будет сообщать о положении.
Declining leaves the rest of the app working: on Android 12 and newer, Bluetooth is unaffected and only the map position and position sharing are disabled. On Android 11 and older, Bluetooth scanning also stops, because that is the permission Android gates it behind.
### Разрешение на уведомления
@@ -76,11 +76,27 @@ Meshtastic также использует местоположение для:
- Вы можете **пропустить** этот шаг, если не нужны уведомления о прорывах
- Настроить или отменить можно позже в настройках уведомлений Android
### Reviewing permissions later
**Settings → Permissions** summarizes where every runtime permission stands. It reads _All allowed_ when nothing needs you, and names the count when something does — opening itself automatically in that case. Tap the row to see the full list at any time:
Состояние | What tapping the row does |
------------------------------------------- | -------------------------------------------------------------------------------------------- |
**Allowed** | Opens the system page, so you can review or revoke it |
**Not asked yet** | Requests it |
**Denied — tap to allow** | Explains what the permission is for, then asks again if you agree |
**Blocked — tap to open system settings** | Android will no longer show its dialog, so this opens the page where you can turn it back on |
**Not required on this version of Android** | Nothing — the permission does not exist on your device |
This matters most for notifications. The app used to ask for them in exactly one place — the setup flow — so declining there meant no message, new-node, or low-battery alerts, with nothing in the app that could ask again. Android itself stops showing the dialog once you have declined firmly (a second denial on Android 11 and newer), at which point this row switches to **Blocked** and sends you to the system settings page instead.
## После настройки
Как только разрешения предоставлены, приложение переходит к основному интерфейсу. Ваше первое действие должно заключаться в подключении к радиостанции Meshtastic — см. [Подключения](connections) для подробных инструкций.
&gt; 💡 **Совет:** Если ты пропустил какие-либо разрешения во время настройки, то можешь выдать их позже через **Настройки Android → Приложения → Meshtastic → Разрешения**. Приложение снова запросит у тебя разрешение, если отсутствующее разрешение блокирует функцию, которую ты пытаешься использовать.
&gt; 💡 **Tip:** If you skipped any permissions during setup, open **Settings → Permissions** in the app. Every runtime permission is listed there with its current state and a way back to it — including notifications, which the system will not prompt for a second time on its own.
Features also ask in context. Tapping **Scan** on the Connections screen with Bluetooth permission missing explains what it is for and offers to request it; once Android stops prompting, the same control opens the system settings page instead of doing nothing.
## Что дальше?
+12 -1
View File
@@ -29,7 +29,18 @@ Use the transport selector — a segmented button row below the connection card
![Transport selector](../../assets/screenshots/connections_transport_filters.png)
&gt; 💡 **Tip:** If your device doesn't appear, check that Bluetooth and Location permissions are granted, and that the radio is not already connected to another device.
&gt; 💡 **Tip:** If your device doesn't appear, check that the radio is not already connected to another device or out of range.
The screen names anything on the app's side that is blocking a scan, with the fix attached:
What you see | What it means |
--------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
A card asking for **Nearby devices** | The permission has not been granted. **Grant permission** requests it; once Android stops prompting, the button becomes **Open settings**. |
**Bluetooth is off** | The adapter is disabled — the card opens Bluetooth settings. |
**Bluetooth scanning also needs location services** | Android 11 and older only: the permission is held but the system location toggle is off. |
No card, empty list | Nothing on this side is blocking the scan — the radio is out of range, off, or already connected elsewhere. |
Tapping **Scan** after you have declined the permission once explains what it is for before asking again, and lets you decline again without being cornered.
### Connection Status
+20 -4
View File
@@ -13,7 +13,7 @@ Welcome to Meshtastic! This guide walks you through the initial setup of the Mes
## First Launch
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or you can skip and configure permissions later in Android settings.
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or skipped — nothing here is a one-time offer. Every permission can be reviewed and granted later from **Settings → Permissions** inside the app.
### Welcome Screen
@@ -42,7 +42,7 @@ Grant both permissions when prompted. Without Bluetooth, you'll need to use USB
### Location Permission
&gt; ⚠️ **Why is location required for Bluetooth?** Android requires location permission to discover nearby Bluetooth Low Energy devices. This is an Android system requirement, not a Meshtastic-specific choice.
&gt; ⚠️ **Is location required for Bluetooth?** On **Android 11 and older**, yes — those releases treat a Bluetooth scan as a location capability, so the app asks for Location instead of "Nearby devices", and system **Location Services** must also be switched on for a scan to return anything. There you will see **one** location step rather than two, on the Bluetooth screen, because it is a single system permission — and asking twice for it would push you toward the point where Android stops offering the dialog at all (a second denial on Android 11; the "Don't ask again" checkbox on Android 10 and older). On **Android 12 and newer** the two are separate: "Nearby devices" is declared `neverForLocation`, and declining Location does not stop you finding or connecting to a radio.
Meshtastic also uses your location for:
@@ -55,7 +55,7 @@ Grant **"While using the app"** or **"Always"** depending on your preference:
- **While using the app** — position updates only when the app is open
- **Always** — enables background position updates for always-on mesh presence
If denied, Bluetooth scanning will not function and your node will not report a position.
Declining leaves the rest of the app working: on Android 12 and newer, Bluetooth is unaffected and only the map position and position sharing are disabled. On Android 11 and older, Bluetooth scanning also stops, because that is the permission Android gates it behind.
### Notifications Permission
@@ -76,11 +76,27 @@ On supported devices, the app may request permission for critical alerts:
- You can **skip** this step if you don't need breakthrough notifications
- Configure or revoke later in Android notification settings
### Reviewing permissions later
**Settings → Permissions** summarizes where every runtime permission stands. It reads _All allowed_ when nothing needs you, and names the count when something does — opening itself automatically in that case. Tap the row to see the full list at any time:
State | What tapping the row does |
------------------------------------------- | -------------------------------------------------------------------------------------------- |
**Allowed** | Opens the system page, so you can review or revoke it |
**Not asked yet** | Requests it |
**Denied — tap to allow** | Explains what the permission is for, then asks again if you agree |
**Blocked — tap to open system settings** | Android will no longer show its dialog, so this opens the page where you can turn it back on |
**Not required on this version of Android** | Nothing — the permission does not exist on your device |
This matters most for notifications. The app used to ask for them in exactly one place — the setup flow — so declining there meant no message, new-node, or low-battery alerts, with nothing in the app that could ask again. Android itself stops showing the dialog once you have declined firmly (a second denial on Android 11 and newer), at which point this row switches to **Blocked** and sends you to the system settings page instead.
## After Setup
Once permissions are granted, the app transitions to the main interface. Your first action should be connecting to a Meshtastic radio — see [Connections](connections) for detailed instructions.
&gt; 💡 **Tip:** If you skipped any permissions during setup, you can grant them later through **Android Settings → Apps → Meshtastic → Permissions**. The app will prompt you again if a missing permission blocks a feature you try to use.
&gt; 💡 **Tip:** If you skipped any permissions during setup, open **Settings → Permissions** in the app. Every runtime permission is listed there with its current state and a way back to it — including notifications, which the system will not prompt for a second time on its own.
Features also ask in context. Tapping **Scan** on the Connections screen with Bluetooth permission missing explains what it is for and offers to request it; once Android stops prompting, the same control opens the system settings page instead of doing nothing.
## What's Next?
+12 -1
View File
@@ -29,7 +29,18 @@ Use the transport selector — a segmented button row below the connection card
![Transport selector](../../assets/screenshots/connections_transport_filters.png)
&gt; 💡 **Tip:** If your device doesn't appear, check that Bluetooth and Location permissions are granted, and that the radio is not already connected to another device.
&gt; 💡 **Tip:** If your device doesn't appear, check that the radio is not already connected to another device or out of range.
The screen names anything on the app's side that is blocking a scan, with the fix attached:
What you see | What it means |
--------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
A card asking for **Nearby devices** | The permission has not been granted. **Grant permission** requests it; once Android stops prompting, the button becomes **Open settings**. |
**Bluetooth is off** | The adapter is disabled — the card opens Bluetooth settings. |
**Bluetooth scanning also needs location services** | Android 11 and older only: the permission is held but the system location toggle is off. |
No card, empty list | Nothing on this side is blocking the scan — the radio is out of range, off, or already connected elsewhere. |
Tapping **Scan** after you have declined the permission once explains what it is for before asking again, and lets you decline again without being cornered.
### Connection Status
+20 -4
View File
@@ -13,7 +13,7 @@ Welcome to Meshtastic! This guide walks you through the initial setup of the Mes
## First Launch
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or you can skip and configure permissions later in Android settings.
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or skipped — nothing here is a one-time offer. Every permission can be reviewed and granted later from **Settings → Permissions** inside the app.
### Welcome Screen
@@ -42,7 +42,7 @@ Grant both permissions when prompted. Without Bluetooth, you'll need to use USB
### Location Permission
&gt; ⚠️ **Why is location required for Bluetooth?** Android requires location permission to discover nearby Bluetooth Low Energy devices. This is an Android system requirement, not a Meshtastic-specific choice.
&gt; ⚠️ **Is location required for Bluetooth?** On **Android 11 and older**, yes — those releases treat a Bluetooth scan as a location capability, so the app asks for Location instead of "Nearby devices", and system **Location Services** must also be switched on for a scan to return anything. There you will see **one** location step rather than two, on the Bluetooth screen, because it is a single system permission — and asking twice for it would push you toward the point where Android stops offering the dialog at all (a second denial on Android 11; the "Don't ask again" checkbox on Android 10 and older). On **Android 12 and newer** the two are separate: "Nearby devices" is declared `neverForLocation`, and declining Location does not stop you finding or connecting to a radio.
Meshtastic also uses your location for:
@@ -55,7 +55,7 @@ Grant **"While using the app"** or **"Always"** depending on your preference:
- **While using the app** — position updates only when the app is open
- **Always** — enables background position updates for always-on mesh presence
If denied, Bluetooth scanning will not function and your node will not report a position.
Declining leaves the rest of the app working: on Android 12 and newer, Bluetooth is unaffected and only the map position and position sharing are disabled. On Android 11 and older, Bluetooth scanning also stops, because that is the permission Android gates it behind.
### Notifications Permission
@@ -76,11 +76,27 @@ On supported devices, the app may request permission for critical alerts:
- You can **skip** this step if you don't need breakthrough notifications
- Configure or revoke later in Android notification settings
### Reviewing permissions later
**Settings → Permissions** summarizes where every runtime permission stands. It reads _All allowed_ when nothing needs you, and names the count when something does — opening itself automatically in that case. Tap the row to see the full list at any time:
State | What tapping the row does |
------------------------------------------- | -------------------------------------------------------------------------------------------- |
**Allowed** | Opens the system page, so you can review or revoke it |
**Not asked yet** | Requests it |
**Denied — tap to allow** | Explains what the permission is for, then asks again if you agree |
**Blocked — tap to open system settings** | Android will no longer show its dialog, so this opens the page where you can turn it back on |
**Not required on this version of Android** | Nothing — the permission does not exist on your device |
This matters most for notifications. The app used to ask for them in exactly one place — the setup flow — so declining there meant no message, new-node, or low-battery alerts, with nothing in the app that could ask again. Android itself stops showing the dialog once you have declined firmly (a second denial on Android 11 and newer), at which point this row switches to **Blocked** and sends you to the system settings page instead.
## After Setup
Once permissions are granted, the app transitions to the main interface. Your first action should be connecting to a Meshtastic radio — see [Connections](connections) for detailed instructions.
&gt; 💡 **Tip:** If you skipped any permissions during setup, you can grant them later through **Android Settings → Apps → Meshtastic → Permissions**. The app will prompt you again if a missing permission blocks a feature you try to use.
&gt; 💡 **Tip:** If you skipped any permissions during setup, open **Settings → Permissions** in the app. Every runtime permission is listed there with its current state and a way back to it — including notifications, which the system will not prompt for a second time on its own.
Features also ask in context. Tapping **Scan** on the Connections screen with Bluetooth permission missing explains what it is for and offers to request it; once Android stops prompting, the same control opens the system settings page instead of doing nothing.
## What's Next?
+12 -1
View File
@@ -29,7 +29,18 @@ Use the transport selector — a segmented button row below the connection card
![Transport selector](../../assets/screenshots/connections_transport_filters.png)
&gt; 💡 **Tip:** If your device doesn't appear, check that Bluetooth and Location permissions are granted, and that the radio is not already connected to another device.
&gt; 💡 **Tip:** If your device doesn't appear, check that the radio is not already connected to another device or out of range.
The screen names anything on the app's side that is blocking a scan, with the fix attached:
What you see | What it means |
--------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
A card asking for **Nearby devices** | The permission has not been granted. **Grant permission** requests it; once Android stops prompting, the button becomes **Open settings**. |
**Bluetooth is off** | The adapter is disabled — the card opens Bluetooth settings. |
**Bluetooth scanning also needs location services** | Android 11 and older only: the permission is held but the system location toggle is off. |
No card, empty list | Nothing on this side is blocking the scan — the radio is out of range, off, or already connected elsewhere. |
Tapping **Scan** after you have declined the permission once explains what it is for before asking again, and lets you decline again without being cornered.
### Connection Status
+20 -4
View File
@@ -13,7 +13,7 @@ Welcome to Meshtastic! This guide walks you through the initial setup of the Mes
## First Launch
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or you can skip and configure permissions later in Android settings.
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or skipped — nothing here is a one-time offer. Every permission can be reviewed and granted later from **Settings → Permissions** inside the app.
### Welcome Screen
@@ -42,7 +42,7 @@ Grant both permissions when prompted. Without Bluetooth, you'll need to use USB
### Location Permission
&gt; ⚠️ **Why is location required for Bluetooth?** Android requires location permission to discover nearby Bluetooth Low Energy devices. This is an Android system requirement, not a Meshtastic-specific choice.
&gt; ⚠️ **Is location required for Bluetooth?** On **Android 11 and older**, yes — those releases treat a Bluetooth scan as a location capability, so the app asks for Location instead of "Nearby devices", and system **Location Services** must also be switched on for a scan to return anything. There you will see **one** location step rather than two, on the Bluetooth screen, because it is a single system permission — and asking twice for it would push you toward the point where Android stops offering the dialog at all (a second denial on Android 11; the "Don't ask again" checkbox on Android 10 and older). On **Android 12 and newer** the two are separate: "Nearby devices" is declared `neverForLocation`, and declining Location does not stop you finding or connecting to a radio.
Meshtastic also uses your location for:
@@ -55,7 +55,7 @@ Grant **"While using the app"** or **"Always"** depending on your preference:
- **While using the app** — position updates only when the app is open
- **Always** — enables background position updates for always-on mesh presence
If denied, Bluetooth scanning will not function and your node will not report a position.
Declining leaves the rest of the app working: on Android 12 and newer, Bluetooth is unaffected and only the map position and position sharing are disabled. On Android 11 and older, Bluetooth scanning also stops, because that is the permission Android gates it behind.
### Notifications Permission
@@ -76,11 +76,27 @@ On supported devices, the app may request permission for critical alerts:
- You can **skip** this step if you don't need breakthrough notifications
- Configure or revoke later in Android notification settings
### Reviewing permissions later
**Settings → Permissions** summarizes where every runtime permission stands. It reads _All allowed_ when nothing needs you, and names the count when something does — opening itself automatically in that case. Tap the row to see the full list at any time:
State | What tapping the row does |
------------------------------------------- | -------------------------------------------------------------------------------------------- |
**Allowed** | Opens the system page, so you can review or revoke it |
**Not asked yet** | Requests it |
**Denied — tap to allow** | Explains what the permission is for, then asks again if you agree |
**Blocked — tap to open system settings** | Android will no longer show its dialog, so this opens the page where you can turn it back on |
**Not required on this version of Android** | Nothing — the permission does not exist on your device |
This matters most for notifications. The app used to ask for them in exactly one place — the setup flow — so declining there meant no message, new-node, or low-battery alerts, with nothing in the app that could ask again. Android itself stops showing the dialog once you have declined firmly (a second denial on Android 11 and newer), at which point this row switches to **Blocked** and sends you to the system settings page instead.
## After Setup
Once permissions are granted, the app transitions to the main interface. Your first action should be connecting to a Meshtastic radio — see [Connections](connections) for detailed instructions.
&gt; 💡 **Tip:** If you skipped any permissions during setup, you can grant them later through **Android Settings → Apps → Meshtastic → Permissions**. The app will prompt you again if a missing permission blocks a feature you try to use.
&gt; 💡 **Tip:** If you skipped any permissions during setup, open **Settings → Permissions** in the app. Every runtime permission is listed there with its current state and a way back to it — including notifications, which the system will not prompt for a second time on its own.
Features also ask in context. Tapping **Scan** on the Connections screen with Bluetooth permission missing explains what it is for and offers to request it; once Android stops prompting, the same control opens the system settings page instead of doing nothing.
## What's Next?
+12 -1
View File
@@ -29,7 +29,18 @@ Use the transport selector — a segmented button row below the connection card
![Transport selector](../../assets/screenshots/connections_transport_filters.png)
&gt; 💡 **Tip:** If your device doesn't appear, check that Bluetooth and Location permissions are granted, and that the radio is not already connected to another device.
&gt; 💡 **Tip:** If your device doesn't appear, check that the radio is not already connected to another device or out of range.
The screen names anything on the app's side that is blocking a scan, with the fix attached:
What you see | What it means |
--------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
A card asking for **Nearby devices** | The permission has not been granted. **Grant permission** requests it; once Android stops prompting, the button becomes **Open settings**. |
**Bluetooth is off** | The adapter is disabled — the card opens Bluetooth settings. |
**Bluetooth scanning also needs location services** | Android 11 and older only: the permission is held but the system location toggle is off. |
No card, empty list | Nothing on this side is blocking the scan — the radio is out of range, off, or already connected elsewhere. |
Tapping **Scan** after you have declined the permission once explains what it is for before asking again, and lets you decline again without being cornered.
### Connection Status
+20 -4
View File
@@ -13,7 +13,7 @@ Welcome to Meshtastic! This guide walks you through the initial setup of the Mes
## First Launch
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or you can skip and configure permissions later in Android settings.
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or skipped — nothing here is a one-time offer. Every permission can be reviewed and granted later from **Settings → Permissions** inside the app.
### Welcome Screen
@@ -42,7 +42,7 @@ Grant both permissions when prompted. Without Bluetooth, you'll need to use USB
### Location Permission
&gt; ⚠️ **Why is location required for Bluetooth?** Android requires location permission to discover nearby Bluetooth Low Energy devices. This is an Android system requirement, not a Meshtastic-specific choice.
&gt; ⚠️ **Is location required for Bluetooth?** On **Android 11 and older**, yes — those releases treat a Bluetooth scan as a location capability, so the app asks for Location instead of "Nearby devices", and system **Location Services** must also be switched on for a scan to return anything. There you will see **one** location step rather than two, on the Bluetooth screen, because it is a single system permission — and asking twice for it would push you toward the point where Android stops offering the dialog at all (a second denial on Android 11; the "Don't ask again" checkbox on Android 10 and older). On **Android 12 and newer** the two are separate: "Nearby devices" is declared `neverForLocation`, and declining Location does not stop you finding or connecting to a radio.
Meshtastic also uses your location for:
@@ -55,7 +55,7 @@ Grant **"While using the app"** or **"Always"** depending on your preference:
- **While using the app** — position updates only when the app is open
- **Always** — enables background position updates for always-on mesh presence
If denied, Bluetooth scanning will not function and your node will not report a position.
Declining leaves the rest of the app working: on Android 12 and newer, Bluetooth is unaffected and only the map position and position sharing are disabled. On Android 11 and older, Bluetooth scanning also stops, because that is the permission Android gates it behind.
### Notifications Permission
@@ -76,11 +76,27 @@ On supported devices, the app may request permission for critical alerts:
- You can **skip** this step if you don't need breakthrough notifications
- Configure or revoke later in Android notification settings
### Reviewing permissions later
**Settings → Permissions** summarizes where every runtime permission stands. It reads _All allowed_ when nothing needs you, and names the count when something does — opening itself automatically in that case. Tap the row to see the full list at any time:
State | What tapping the row does |
------------------------------------------- | -------------------------------------------------------------------------------------------- |
**Allowed** | Opens the system page, so you can review or revoke it |
**Not asked yet** | Requests it |
**Denied — tap to allow** | Explains what the permission is for, then asks again if you agree |
**Blocked — tap to open system settings** | Android will no longer show its dialog, so this opens the page where you can turn it back on |
**Not required on this version of Android** | Nothing — the permission does not exist on your device |
This matters most for notifications. The app used to ask for them in exactly one place — the setup flow — so declining there meant no message, new-node, or low-battery alerts, with nothing in the app that could ask again. Android itself stops showing the dialog once you have declined firmly (a second denial on Android 11 and newer), at which point this row switches to **Blocked** and sends you to the system settings page instead.
## After Setup
Once permissions are granted, the app transitions to the main interface. Your first action should be connecting to a Meshtastic radio — see [Connections](connections) for detailed instructions.
&gt; 💡 **Tip:** If you skipped any permissions during setup, you can grant them later through **Android Settings → Apps → Meshtastic → Permissions**. The app will prompt you again if a missing permission blocks a feature you try to use.
&gt; 💡 **Tip:** If you skipped any permissions during setup, open **Settings → Permissions** in the app. Every runtime permission is listed there with its current state and a way back to it — including notifications, which the system will not prompt for a second time on its own.
Features also ask in context. Tapping **Scan** on the Connections screen with Bluetooth permission missing explains what it is for and offers to request it; once Android stops prompting, the same control opens the system settings page instead of doing nothing.
## What's Next?
+12 -1
View File
@@ -29,7 +29,18 @@ Use the transport selector — a segmented button row below the connection card
![Transport selector](../../assets/screenshots/connections_transport_filters.png)
&gt; 💡 **Tip:** If your device doesn't appear, check that Bluetooth and Location permissions are granted, and that the radio is not already connected to another device.
&gt; 💡 **Tip:** If your device doesn't appear, check that the radio is not already connected to another device or out of range.
The screen names anything on the app's side that is blocking a scan, with the fix attached:
What you see | What it means |
--------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
A card asking for **Nearby devices** | The permission has not been granted. **Grant permission** requests it; once Android stops prompting, the button becomes **Open settings**. |
**Bluetooth is off** | The adapter is disabled — the card opens Bluetooth settings. |
**Bluetooth scanning also needs location services** | Android 11 and older only: the permission is held but the system location toggle is off. |
No card, empty list | Nothing on this side is blocking the scan — the radio is out of range, off, or already connected elsewhere. |
Tapping **Scan** after you have declined the permission once explains what it is for before asking again, and lets you decline again without being cornered.
### Connection Status
+20 -4
View File
@@ -13,7 +13,7 @@ Welcome to Meshtastic! This guide walks you through the initial setup of the Mes
## First Launch
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or you can skip and configure permissions later in Android settings.
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or skipped — nothing here is a one-time offer. Every permission can be reviewed and granted later from **Settings → Permissions** inside the app.
### Welcome Screen
@@ -42,7 +42,7 @@ Grant both permissions when prompted. Without Bluetooth, you'll need to use USB
### Location Permission
&gt; ⚠️ **Why is location required for Bluetooth?** Android requires location permission to discover nearby Bluetooth Low Energy devices. This is an Android system requirement, not a Meshtastic-specific choice.
&gt; ⚠️ **Is location required for Bluetooth?** On **Android 11 and older**, yes — those releases treat a Bluetooth scan as a location capability, so the app asks for Location instead of "Nearby devices", and system **Location Services** must also be switched on for a scan to return anything. There you will see **one** location step rather than two, on the Bluetooth screen, because it is a single system permission — and asking twice for it would push you toward the point where Android stops offering the dialog at all (a second denial on Android 11; the "Don't ask again" checkbox on Android 10 and older). On **Android 12 and newer** the two are separate: "Nearby devices" is declared `neverForLocation`, and declining Location does not stop you finding or connecting to a radio.
Meshtastic also uses your location for:
@@ -55,7 +55,7 @@ Grant **"While using the app"** or **"Always"** depending on your preference:
- **While using the app** — position updates only when the app is open
- **Always** — enables background position updates for always-on mesh presence
If denied, Bluetooth scanning will not function and your node will not report a position.
Declining leaves the rest of the app working: on Android 12 and newer, Bluetooth is unaffected and only the map position and position sharing are disabled. On Android 11 and older, Bluetooth scanning also stops, because that is the permission Android gates it behind.
### Notifications Permission
@@ -76,11 +76,27 @@ On supported devices, the app may request permission for critical alerts:
- You can **skip** this step if you don't need breakthrough notifications
- Configure or revoke later in Android notification settings
### Reviewing permissions later
**Settings → Permissions** summarizes where every runtime permission stands. It reads _All allowed_ when nothing needs you, and names the count when something does — opening itself automatically in that case. Tap the row to see the full list at any time:
State | What tapping the row does |
------------------------------------------- | -------------------------------------------------------------------------------------------- |
**Allowed** | Opens the system page, so you can review or revoke it |
**Not asked yet** | Requests it |
**Denied — tap to allow** | Explains what the permission is for, then asks again if you agree |
**Blocked — tap to open system settings** | Android will no longer show its dialog, so this opens the page where you can turn it back on |
**Not required on this version of Android** | Nothing — the permission does not exist on your device |
This matters most for notifications. The app used to ask for them in exactly one place — the setup flow — so declining there meant no message, new-node, or low-battery alerts, with nothing in the app that could ask again. Android itself stops showing the dialog once you have declined firmly (a second denial on Android 11 and newer), at which point this row switches to **Blocked** and sends you to the system settings page instead.
## After Setup
Once permissions are granted, the app transitions to the main interface. Your first action should be connecting to a Meshtastic radio — see [Connections](connections) for detailed instructions.
&gt; 💡 **Tip:** If you skipped any permissions during setup, you can grant them later through **Android Settings → Apps → Meshtastic → Permissions**. The app will prompt you again if a missing permission blocks a feature you try to use.
&gt; 💡 **Tip:** If you skipped any permissions during setup, open **Settings → Permissions** in the app. Every runtime permission is listed there with its current state and a way back to it — including notifications, which the system will not prompt for a second time on its own.
Features also ask in context. Tapping **Scan** on the Connections screen with Bluetooth permission missing explains what it is for and offers to request it; once Android stops prompting, the same control opens the system settings page instead of doing nothing.
## What's Next?
+12 -1
View File
@@ -29,7 +29,18 @@ Use the transport selector — a segmented button row below the connection card
![Transport selector](../../assets/screenshots/connections_transport_filters.png)
&gt; 💡 **Tip:** If your device doesn't appear, check that Bluetooth and Location permissions are granted, and that the radio is not already connected to another device.
&gt; 💡 **Tip:** If your device doesn't appear, check that the radio is not already connected to another device or out of range.
The screen names anything on the app's side that is blocking a scan, with the fix attached:
What you see | What it means |
--------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
A card asking for **Nearby devices** | The permission has not been granted. **Grant permission** requests it; once Android stops prompting, the button becomes **Open settings**. |
**Bluetooth is off** | The adapter is disabled — the card opens Bluetooth settings. |
**Bluetooth scanning also needs location services** | Android 11 and older only: the permission is held but the system location toggle is off. |
No card, empty list | Nothing on this side is blocking the scan — the radio is out of range, off, or already connected elsewhere. |
Tapping **Scan** after you have declined the permission once explains what it is for before asking again, and lets you decline again without being cornered.
### Connection Status
+20 -4
View File
@@ -13,7 +13,7 @@ Welcome to Meshtastic! This guide walks you through the initial setup of the Mes
## First Launch
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or you can skip and configure permissions later in Android settings.
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or skipped — nothing here is a one-time offer. Every permission can be reviewed and granted later from **Settings → Permissions** inside the app.
### Welcome Screen
@@ -42,7 +42,7 @@ Grant both permissions when prompted. Without Bluetooth, you'll need to use USB
### Location Permission
&gt; ⚠️ **Why is location required for Bluetooth?** Android requires location permission to discover nearby Bluetooth Low Energy devices. This is an Android system requirement, not a Meshtastic-specific choice.
&gt; ⚠️ **Is location required for Bluetooth?** On **Android 11 and older**, yes — those releases treat a Bluetooth scan as a location capability, so the app asks for Location instead of "Nearby devices", and system **Location Services** must also be switched on for a scan to return anything. There you will see **one** location step rather than two, on the Bluetooth screen, because it is a single system permission — and asking twice for it would push you toward the point where Android stops offering the dialog at all (a second denial on Android 11; the "Don't ask again" checkbox on Android 10 and older). On **Android 12 and newer** the two are separate: "Nearby devices" is declared `neverForLocation`, and declining Location does not stop you finding or connecting to a radio.
Meshtastic also uses your location for:
@@ -55,7 +55,7 @@ Grant **"While using the app"** or **"Always"** depending on your preference:
- **While using the app** — position updates only when the app is open
- **Always** — enables background position updates for always-on mesh presence
If denied, Bluetooth scanning will not function and your node will not report a position.
Declining leaves the rest of the app working: on Android 12 and newer, Bluetooth is unaffected and only the map position and position sharing are disabled. On Android 11 and older, Bluetooth scanning also stops, because that is the permission Android gates it behind.
### Notifications Permission
@@ -76,11 +76,27 @@ On supported devices, the app may request permission for critical alerts:
- You can **skip** this step if you don't need breakthrough notifications
- Configure or revoke later in Android notification settings
### Reviewing permissions later
**Settings → Permissions** summarizes where every runtime permission stands. It reads _All allowed_ when nothing needs you, and names the count when something does — opening itself automatically in that case. Tap the row to see the full list at any time:
State | What tapping the row does |
------------------------------------------- | -------------------------------------------------------------------------------------------- |
**Allowed** | Opens the system page, so you can review or revoke it |
**Not asked yet** | Requests it |
**Denied — tap to allow** | Explains what the permission is for, then asks again if you agree |
**Blocked — tap to open system settings** | Android will no longer show its dialog, so this opens the page where you can turn it back on |
**Not required on this version of Android** | Nothing — the permission does not exist on your device |
This matters most for notifications. The app used to ask for them in exactly one place — the setup flow — so declining there meant no message, new-node, or low-battery alerts, with nothing in the app that could ask again. Android itself stops showing the dialog once you have declined firmly (a second denial on Android 11 and newer), at which point this row switches to **Blocked** and sends you to the system settings page instead.
## After Setup
Once permissions are granted, the app transitions to the main interface. Your first action should be connecting to a Meshtastic radio — see [Connections](connections) for detailed instructions.
&gt; 💡 **Tip:** If you skipped any permissions during setup, you can grant them later through **Android Settings → Apps → Meshtastic → Permissions**. The app will prompt you again if a missing permission blocks a feature you try to use.
&gt; 💡 **Tip:** If you skipped any permissions during setup, open **Settings → Permissions** in the app. Every runtime permission is listed there with its current state and a way back to it — including notifications, which the system will not prompt for a second time on its own.
Features also ask in context. Tapping **Scan** on the Connections screen with Bluetooth permission missing explains what it is for and offers to request it; once Android stops prompting, the same control opens the system settings page instead of doing nothing.
## What's Next?
+12 -1
View File
@@ -29,7 +29,18 @@ Use the transport selector — a segmented button row below the connection card
![Transport selector](../../assets/screenshots/connections_transport_filters.png)
&gt; 💡 **Tip:** If your device doesn't appear, check that Bluetooth and Location permissions are granted, and that the radio is not already connected to another device.
&gt; 💡 **Tip:** If your device doesn't appear, check that the radio is not already connected to another device or out of range.
The screen names anything on the app's side that is blocking a scan, with the fix attached:
What you see | What it means |
--------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
A card asking for **Nearby devices** | The permission has not been granted. **Grant permission** requests it; once Android stops prompting, the button becomes **Open settings**. |
**Bluetooth is off** | The adapter is disabled — the card opens Bluetooth settings. |
**Bluetooth scanning also needs location services** | Android 11 and older only: the permission is held but the system location toggle is off. |
No card, empty list | Nothing on this side is blocking the scan — the radio is out of range, off, or already connected elsewhere. |
Tapping **Scan** after you have declined the permission once explains what it is for before asking again, and lets you decline again without being cornered.
### Connection Status
+20 -4
View File
@@ -13,7 +13,7 @@ Welcome to Meshtastic! This guide walks you through the initial setup of the Mes
## First Launch
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or you can skip and configure permissions later in Android settings.
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or skipped — nothing here is a one-time offer. Every permission can be reviewed and granted later from **Settings → Permissions** inside the app.
### Welcome Screen
@@ -42,7 +42,7 @@ Grant both permissions when prompted. Without Bluetooth, you'll need to use USB
### Location Permission
&gt; ⚠️ **Why is location required for Bluetooth?** Android requires location permission to discover nearby Bluetooth Low Energy devices. This is an Android system requirement, not a Meshtastic-specific choice.
&gt; ⚠️ **Is location required for Bluetooth?** On **Android 11 and older**, yes — those releases treat a Bluetooth scan as a location capability, so the app asks for Location instead of "Nearby devices", and system **Location Services** must also be switched on for a scan to return anything. There you will see **one** location step rather than two, on the Bluetooth screen, because it is a single system permission — and asking twice for it would push you toward the point where Android stops offering the dialog at all (a second denial on Android 11; the "Don't ask again" checkbox on Android 10 and older). On **Android 12 and newer** the two are separate: "Nearby devices" is declared `neverForLocation`, and declining Location does not stop you finding or connecting to a radio.
Meshtastic also uses your location for:
@@ -55,7 +55,7 @@ Grant **"While using the app"** or **"Always"** depending on your preference:
- **While using the app** — position updates only when the app is open
- **Always** — enables background position updates for always-on mesh presence
If denied, Bluetooth scanning will not function and your node will not report a position.
Declining leaves the rest of the app working: on Android 12 and newer, Bluetooth is unaffected and only the map position and position sharing are disabled. On Android 11 and older, Bluetooth scanning also stops, because that is the permission Android gates it behind.
### Notifications Permission
@@ -76,11 +76,27 @@ On supported devices, the app may request permission for critical alerts:
- You can **skip** this step if you don't need breakthrough notifications
- Configure or revoke later in Android notification settings
### Reviewing permissions later
**Settings → Permissions** summarizes where every runtime permission stands. It reads _All allowed_ when nothing needs you, and names the count when something does — opening itself automatically in that case. Tap the row to see the full list at any time:
State | What tapping the row does |
------------------------------------------- | -------------------------------------------------------------------------------------------- |
**Allowed** | Opens the system page, so you can review or revoke it |
**Not asked yet** | Requests it |
**Denied — tap to allow** | Explains what the permission is for, then asks again if you agree |
**Blocked — tap to open system settings** | Android will no longer show its dialog, so this opens the page where you can turn it back on |
**Not required on this version of Android** | Nothing — the permission does not exist on your device |
This matters most for notifications. The app used to ask for them in exactly one place — the setup flow — so declining there meant no message, new-node, or low-battery alerts, with nothing in the app that could ask again. Android itself stops showing the dialog once you have declined firmly (a second denial on Android 11 and newer), at which point this row switches to **Blocked** and sends you to the system settings page instead.
## After Setup
Once permissions are granted, the app transitions to the main interface. Your first action should be connecting to a Meshtastic radio — see [Connections](connections) for detailed instructions.
&gt; 💡 **Tip:** If you skipped any permissions during setup, you can grant them later through **Android Settings → Apps → Meshtastic → Permissions**. The app will prompt you again if a missing permission blocks a feature you try to use.
&gt; 💡 **Tip:** If you skipped any permissions during setup, open **Settings → Permissions** in the app. Every runtime permission is listed there with its current state and a way back to it — including notifications, which the system will not prompt for a second time on its own.
Features also ask in context. Tapping **Scan** on the Connections screen with Bluetooth permission missing explains what it is for and offers to request it; once Android stops prompting, the same control opens the system settings page instead of doing nothing.
## What's Next?
+12 -1
View File
@@ -29,7 +29,18 @@ Use the transport selector — a segmented button row below the connection card
![Transport selector](../../assets/screenshots/connections_transport_filters.png)
&gt; 💡 **Tip:** If your device doesn't appear, check that Bluetooth and Location permissions are granted, and that the radio is not already connected to another device.
&gt; 💡 **Tip:** If your device doesn't appear, check that the radio is not already connected to another device or out of range.
The screen names anything on the app's side that is blocking a scan, with the fix attached:
What you see | What it means |
--------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
A card asking for **Nearby devices** | The permission has not been granted. **Grant permission** requests it; once Android stops prompting, the button becomes **Open settings**. |
**Bluetooth is off** | The adapter is disabled — the card opens Bluetooth settings. |
**Bluetooth scanning also needs location services** | Android 11 and older only: the permission is held but the system location toggle is off. |
No card, empty list | Nothing on this side is blocking the scan — the radio is out of range, off, or already connected elsewhere. |
Tapping **Scan** after you have declined the permission once explains what it is for before asking again, and lets you decline again without being cornered.
### Connection Status
+20 -4
View File
@@ -13,7 +13,7 @@ Welcome to Meshtastic! This guide walks you through the initial setup of the Mes
## First Launch
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or you can skip and configure permissions later in Android settings.
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or skipped — nothing here is a one-time offer. Every permission can be reviewed and granted later from **Settings → Permissions** inside the app.
### Welcome Screen
@@ -42,7 +42,7 @@ Grant both permissions when prompted. Without Bluetooth, you'll need to use USB
### Location Permission
&gt; ⚠️ **Why is location required for Bluetooth?** Android requires location permission to discover nearby Bluetooth Low Energy devices. This is an Android system requirement, not a Meshtastic-specific choice.
&gt; ⚠️ **Is location required for Bluetooth?** On **Android 11 and older**, yes — those releases treat a Bluetooth scan as a location capability, so the app asks for Location instead of "Nearby devices", and system **Location Services** must also be switched on for a scan to return anything. There you will see **one** location step rather than two, on the Bluetooth screen, because it is a single system permission — and asking twice for it would push you toward the point where Android stops offering the dialog at all (a second denial on Android 11; the "Don't ask again" checkbox on Android 10 and older). On **Android 12 and newer** the two are separate: "Nearby devices" is declared `neverForLocation`, and declining Location does not stop you finding or connecting to a radio.
Meshtastic also uses your location for:
@@ -55,7 +55,7 @@ Grant **"While using the app"** or **"Always"** depending on your preference:
- **While using the app** — position updates only when the app is open
- **Always** — enables background position updates for always-on mesh presence
If denied, Bluetooth scanning will not function and your node will not report a position.
Declining leaves the rest of the app working: on Android 12 and newer, Bluetooth is unaffected and only the map position and position sharing are disabled. On Android 11 and older, Bluetooth scanning also stops, because that is the permission Android gates it behind.
### Notifications Permission
@@ -76,11 +76,27 @@ On supported devices, the app may request permission for critical alerts:
- You can **skip** this step if you don't need breakthrough notifications
- Configure or revoke later in Android notification settings
### Reviewing permissions later
**Settings → Permissions** summarizes where every runtime permission stands. It reads _All allowed_ when nothing needs you, and names the count when something does — opening itself automatically in that case. Tap the row to see the full list at any time:
State | What tapping the row does |
------------------------------------------- | -------------------------------------------------------------------------------------------- |
**Allowed** | Opens the system page, so you can review or revoke it |
**Not asked yet** | Requests it |
**Denied — tap to allow** | Explains what the permission is for, then asks again if you agree |
**Blocked — tap to open system settings** | Android will no longer show its dialog, so this opens the page where you can turn it back on |
**Not required on this version of Android** | Nothing — the permission does not exist on your device |
This matters most for notifications. The app used to ask for them in exactly one place — the setup flow — so declining there meant no message, new-node, or low-battery alerts, with nothing in the app that could ask again. Android itself stops showing the dialog once you have declined firmly (a second denial on Android 11 and newer), at which point this row switches to **Blocked** and sends you to the system settings page instead.
## After Setup
Once permissions are granted, the app transitions to the main interface. Your first action should be connecting to a Meshtastic radio — see [Connections](connections) for detailed instructions.
&gt; 💡 **Tip:** If you skipped any permissions during setup, you can grant them later through **Android Settings → Apps → Meshtastic → Permissions**. The app will prompt you again if a missing permission blocks a feature you try to use.
&gt; 💡 **Tip:** If you skipped any permissions during setup, open **Settings → Permissions** in the app. Every runtime permission is listed there with its current state and a way back to it — including notifications, which the system will not prompt for a second time on its own.
Features also ask in context. Tapping **Scan** on the Connections screen with Bluetooth permission missing explains what it is for and offers to request it; once Android stops prompting, the same control opens the system settings page instead of doing nothing.
## What's Next?
+12 -1
View File
@@ -29,7 +29,18 @@ Use the transport selector — a segmented button row below the connection card
![Transport selector](../../assets/screenshots/connections_transport_filters.png)
&gt; 💡 提示:若裝置未顯示,請確認已授予藍牙與位置權限,且該無線電裝置尚未連接至其他裝置。
&gt; 💡 **Tip:** If your device doesn't appear, check that the radio is not already connected to another device or out of range.
The screen names anything on the app's side that is blocking a scan, with the fix attached:
What you see | 代表意義 |
--------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
A card asking for **Nearby devices** | The permission has not been granted. **Grant permission** requests it; once Android stops prompting, the button becomes **Open settings**. |
**Bluetooth is off** | The adapter is disabled — the card opens Bluetooth settings. |
**Bluetooth scanning also needs location services** | Android 11 and older only: the permission is held but the system location toggle is off. |
No card, empty list | Nothing on this side is blocking the scan — the radio is out of range, off, or already connected elsewhere. |
Tapping **Scan** after you have declined the permission once explains what it is for before asking again, and lets you decline again without being cornered.
### 連線狀態
+20 -4
View File
@@ -13,7 +13,7 @@ Welcome to Meshtastic! This guide walks you through the initial setup of the Mes
## First Launch
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or you can skip and configure permissions later in Android settings.
When you open the app for the first time, you'll be guided through an introductory flow that helps configure essential permissions and settings. Each step can be completed in order, or skipped — nothing here is a one-time offer. Every permission can be reviewed and granted later from **Settings → Permissions** inside the app.
### Welcome Screen
@@ -42,7 +42,7 @@ Grant both permissions when prompted. Without Bluetooth, you'll need to use USB
### Location Permission
&gt; ⚠️ **Why is location required for Bluetooth?** Android requires location permission to discover nearby Bluetooth Low Energy devices. This is an Android system requirement, not a Meshtastic-specific choice.
&gt; ⚠️ **Is location required for Bluetooth?** On **Android 11 and older**, yes — those releases treat a Bluetooth scan as a location capability, so the app asks for Location instead of "Nearby devices", and system **Location Services** must also be switched on for a scan to return anything. There you will see **one** location step rather than two, on the Bluetooth screen, because it is a single system permission — and asking twice for it would push you toward the point where Android stops offering the dialog at all (a second denial on Android 11; the "Don't ask again" checkbox on Android 10 and older). On **Android 12 and newer** the two are separate: "Nearby devices" is declared `neverForLocation`, and declining Location does not stop you finding or connecting to a radio.
Meshtastic also uses your location for:
@@ -55,7 +55,7 @@ Grant **"While using the app"** or **"Always"** depending on your preference:
- **While using the app** — position updates only when the app is open
- **Always** — enables background position updates for always-on mesh presence
If denied, Bluetooth scanning will not function and your node will not report a position.
Declining leaves the rest of the app working: on Android 12 and newer, Bluetooth is unaffected and only the map position and position sharing are disabled. On Android 11 and older, Bluetooth scanning also stops, because that is the permission Android gates it behind.
### Notifications Permission
@@ -76,11 +76,27 @@ On supported devices, the app may request permission for critical alerts:
- You can **skip** this step if you don't need breakthrough notifications
- Configure or revoke later in Android notification settings
### Reviewing permissions later
**Settings → Permissions** summarizes where every runtime permission stands. It reads _All allowed_ when nothing needs you, and names the count when something does — opening itself automatically in that case. Tap the row to see the full list at any time:
狀態 | What tapping the row does |
------------------------------------------- | -------------------------------------------------------------------------------------------- |
**Allowed** | Opens the system page, so you can review or revoke it |
**Not asked yet** | Requests it |
**Denied — tap to allow** | Explains what the permission is for, then asks again if you agree |
**Blocked — tap to open system settings** | Android will no longer show its dialog, so this opens the page where you can turn it back on |
**Not required on this version of Android** | Nothing — the permission does not exist on your device |
This matters most for notifications. The app used to ask for them in exactly one place — the setup flow — so declining there meant no message, new-node, or low-battery alerts, with nothing in the app that could ask again. Android itself stops showing the dialog once you have declined firmly (a second denial on Android 11 and newer), at which point this row switches to **Blocked** and sends you to the system settings page instead.
## After Setup
Once permissions are granted, the app transitions to the main interface. Your first action should be connecting to a Meshtastic radio — see [Connections](connections) for detailed instructions.
&gt; 💡 **Tip:** If you skipped any permissions during setup, you can grant them later through **Android Settings → Apps → Meshtastic → Permissions**. The app will prompt you again if a missing permission blocks a feature you try to use.
&gt; 💡 **Tip:** If you skipped any permissions during setup, open **Settings → Permissions** in the app. Every runtime permission is listed there with its current state and a way back to it — including notifications, which the system will not prompt for a second time on its own.
Features also ask in context. Tapping **Scan** on the Connections screen with Bluetooth permission missing explains what it is for and offers to request it; once Android stops prompting, the same control opens the system settings page instead of doing nothing.
## What's Next?
File diff suppressed because one or more lines are too long.
File diff suppressed because one or more lines are too long.
Loaded 100 of 167 files, more files were not shown because too many files have changed in this diff. Show more