SpeakMic Offline — Privacy Policy

Last updated: October 21, 2026

This Privacy Policy describes how the SpeakMic Offline Android application ("the App", "we", "us") handles information when you use it. SpeakMic Offline is designed to work without an internet connection: all audio and chat communication takes place directly between nearby devices using WiFi Direct and Bluetooth (via Google Nearby Connections). Session content itself never leaves your local network. When an internet connection is available, the App also makes a small number of network requests unrelated to your session content: an anonymous startup ping and version check to speakmic.com (always sent), and anonymous room-usage events sent to Google's Firebase Analytics (sent only if you agree — see below). Both are described in detail below.

TL;DR

  • All audio and chat messages travel only between nearby devices in the same room. Nothing leaves your local network during a session.
  • On startup, if your device has internet access, the App sends one anonymous ping to speakmic.com to help us understand how many people use the App, and asks the server for the minimum supported app version. No personal data is included in either.
  • The first time you open the App, it asks whether you agree to Firebase Analytics usage tracking (app launches, room creation/join, chat/reaction activity, tab/help/update-button taps, discovered-room taps) — off by default, and changeable anytime in Settings. This isn't tied to your name or account, just a random ID for your installation (see below). No room code, room name, nickname, chat content, reaction emoji, or audio is ever included.
  • We do not collect advertising identifiers, crash reports, precise location data, or any information that directly identifies you.
  • No account or sign-up is required.
  • Location permission is required by Android for Bluetooth/WiFi scanning — your geographic location is never read or stored by the App.

App-open analytics (Vercel)

When the App starts and an internet connection is available, it sends a single HTTPS request to speakmic.com/api/native-analytics containing:

  • Event name: app_open — indicates the App was launched.
  • Source identifier: offline_android — distinguishes this App from other SpeakMic clients.
  • Version code: an integer identifying the installed App version.

No personal data, device identifiers, advertising IDs, or location information is included. The request is processed by Vercel Analytics, a privacy-friendly analytics platform that does not use cookies and does not build personal profiles. IP addresses are not stored. If no internet connection is available at startup, no request is made — the App functions entirely offline as normal.

Room-usage analytics (Firebase)

The last step of the one-time onboarding screen shown on first launch, after the permission requests, asks whether you agree to usage analytics via Google's Firebase Analytics SDK (Firebase project speakmic-offline). This is optional — nothing is collected until you agree — and you can change your answer anytime under Settings → Usage analytics. Once you agree, we log:

  • app_open — the App was launched. This is separate from, and in addition to, the Vercel ping described above.
  • room_created — a room was created: room type (walkie-talkie or broadcast), connection method (Nearby Connections or local WiFi), whether the room was open or closed, the maximum number of participants, and — for walkie-talkie rooms — the configured speak-duration limit.
  • room_joined — a room was joined: room type and connection method.
  • message_sent / reaction_sent — a chat message or emoji reaction was sent: only the room type is included, never the message text or which emoji was picked.
  • room_left — a session ended: room type, connection method, whether you were the room's creator, and how many participants were in the room at that point.
  • tab_clicked — you switched tabs within a screen (e.g. Room/Chat/Share, or Broadcast/Walkie-talkie/Join): which screen and which tab.
  • room_list_item_clicked — you tapped a room in the discovered-rooms list: room type and connection method.
  • help_clicked — you opened the in-app Help screen: only where you opened it from (home screen or settings).
  • update_button_clicked — you tapped the download button on the mandatory update screen.

None of these events ever include a room code, room name, nickname, chat text, the emoji you reacted with, or audio. Like most mobile analytics SDKs, Firebase Analytics attaches a random, app-installation-scoped identifier and basic technical data (app version, OS version, device model, coarse region derived from IP address) to every event as part of its standard operation. This data is processed by Google under Google's Privacy Policy and is tied only to that random per-installation identifier — never to your name, nickname, or a Google account. If you decline or later switch it off in Settings, no further events are collected or sent. Each event is only sent when an internet connection is available at that moment; if you're offline, the App and the room still work exactly the same and the event is simply skipped.

Version check

Alongside the analytics ping, the App requests signal.speakmic.com/api/settings to learn the minimum supported app version, so it can tell you when an update is required. The request sends no data about you — it only reads a value from the server. As with analytics, nothing is sent when the device is offline.

Audio

Audio is captured from your microphone only while you actively hold the Push-to-Talk (PTT) button. It is transmitted in real time to other participants in the same local session via WiFi Direct or Bluetooth. No recordings are created, stored, or sent to any server.

Microphone permission (RECORD_AUDIO)

The App requests access to your microphone so you can transmit voice to nearby participants. Audio is captured only while PTT is active and is never recorded.

Location permission (ACCESS_FINE_LOCATION)

Android requires apps to hold the Fine Location permission before they can scan for nearby Bluetooth devices or initiate WiFi Direct connections. The App requests this permission solely to satisfy that system requirement. Your geographic location is never read, stored, or transmitted by SpeakMic Offline.

Bluetooth permissions (BLUETOOTH_SCAN, BLUETOOTH_CONNECT)

Used on Android 12+ to discover and connect to nearby devices running the App in the same room. These permissions do not grant access to your Bluetooth pairing history or any stored Bluetooth data.

Nearby WiFi devices (NEARBY_WIFI_DEVICES)

Used on Android 13+ to establish WiFi Direct connections with nearby participants. The App does not scan or log surrounding WiFi networks.

Chat messages and emoji reactions

Text messages and emoji reactions typed during a session are transmitted only to participants in the same local room via the Nearby Connections transport. They are held in memory while the session is active and are discarded when the App closes or the room ends. They are never stored persistently on the device or sent to a server.

Nicknames

The nickname you enter when creating or joining a room is visible to other participants in that session. It is stored in your device's local storage for convenience so you do not need to re-enter it. It is never transmitted to speakmic.com.

SpeakMic Offline Wear (watch)

With the SpeakMic Offline Wear app on a Wear OS watch, the watch is a remote for the room open on your phone: the phone sends it the room's name, the nickname of whoever is talking, the number of people or listeners and the volume, and the watch sends back your taps (talk, mute, leave). This goes only between your own phone and watch, through Google Play services' Wearable Data Layer; the watch never joins the room itself, keeps only the last state for its tile and watch face, and nothing is sent to speakmic.com.

Foreground service

To keep the audio connection alive while the screen is locked, the App runs a foreground service. This service displays a persistent notification while active. No additional data is collected by the foreground service.

Children

SpeakMic Offline may be used from the age of 13; below the age of digital consent in your country (16 in Poland) with the permission of a parent or guardian (see the Terms of Use). The App is not directed at children under 13 and we do not knowingly collect their data. Someone below the age of digital consent may agree to the analytics only together with a parent or guardian.

Changes to this policy

If we make material changes, we will update the date at the top of this document and publish the updated version at speakmic.com/offline-privacy.

Contact

Questions or requests regarding this policy: [email protected]


Back to SpeakMic