36d8e4098e feat(geolocation): support for non-GMS devices (#3377)
* chore(geolocation): update gradle

* feat(geolocation): add support for android devices without GMS

* fix(geolocation): watchPosition does not resolve on android

* feat(example): add watch support for geolocation

* chore: add changeset

* Update .changes/geolocation-non-gms.md

Co-authored-by: Fabian-Lars <30730186+FabianLars@users.noreply.github.com>

* fix(geolocation): only use Android Location API on API Level >= 31

* fix resolve

* fix(geolocation): use LocationManagerCompat for non-GMS devices

- support API 24+ instead of only API 31+
- pick the best enabled provider (fused, gps, network) instead of GPS only
- honor enableHighAccuracy in getCurrentPosition
- clear the previous listener before starting a new watch
- report an error when the provider is disabled during a watch
- share the provider/priority logic between both code paths
- drop the geolocation-js bump, no JS changes

* fix(examples): clear existing geolocation watch before starting a new one

* chore(geolocation): add change file for watchPosition resolve fix

* fix(geolocation): honor enableHighAccuracy in getCurrentPosition on Android 12+ without GMS

* fix(geolocation): fall back to the next provider when one returns no fix on Android without GMS

* fix(geolocation): honor timeout in getCurrentPosition on Android

* fix(geolocation): keep multiple watchPosition watches active on Android

* chore(geolocation): bump geolocation-js alongside geolocation in change files

* refactor(geolocation): report provider errors from the callers of androidProviders

* e2e tests

---------

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>
Co-authored-by: Fabian-Lars <30730186+FabianLars@users.noreply.github.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2026-10-13 17:37:39 -03:00
2026-09-01 17:38:21 +08:00
2026-10-11 22:07:25 -03:00
2026-09-30 17:56:45 -03:00
2022-12-14 18:54:05 +01:00
2022-12-14 18:54:05 +01:00
2022-12-14 18:54:05 +01:00
2026-10-09 09:40:26 -03:00

Official Tauri Plugins

This repo and all plugins require a Rust version of at least 1.90

Plugins Found Here

Win Mac Lin iOS And
autostart Automatically launch your app at system startup. ✅ ✅ ✅ ❌ ❌
barcode-scanner Allows your mobile application to use the camera to scan QR codes, EAN-13 and other kinds of barcodes. ? ? ? ✅ ✅
biometric Prompt the user for biometric authentication on Android and iOS. ? ? ? ✅ ✅
cli Parse arguments from your Command Line Interface ✅ ✅ ✅ ❌ ❌
clipboard-manager Read and write to the system clipboard. ✅ ✅ ✅ ✅ ✅
deep-link Set your Tauri application as the default handler for an URL. ✅ ✅ ✅ ✅ ✅
dialog Native system dialogs for opening and saving files along with message dialogs. ✅ ✅ ✅ ✅ ✅
fs Access the file system. ✅ ✅ ✅ ? ?
geolocation Get and track current device position. ? ? ? ✅ ✅
global-shortcut Register global shortcuts. ✅ ✅ ✅ ? ?
haptics Haptic feedback and vibrations. ? ? ? ✅ ✅
http Access the HTTP client written in Rust. ✅ ✅ ✅ ✅ ✅
localhost Use a localhost server in production apps. ✅ ✅ ✅ ? ?
log Configurable logging. ✅ ✅ ✅ ✅ ✅
nfc Read and write NFC tags on Android and iOS. ? ? ? ✅ ✅
notification Send message notifications (brief auto-expiring OS window element) to your user. Can also be used with the Notification Web API. ✅ ✅ ✅ ✅ ✅
opener Open files and URLs using their default application. ✅ ✅ ✅ ✅ ✅
os Read information about the operating system. ✅ ✅ ✅ ✅ ✅
persisted-scope Persist runtime scope changes on the filesystem. ✅ ✅ ✅ ? ?
positioner Move windows to common locations. ✅ ✅ ✅ ❌ ❌
process This plugin provides APIs to access the current process. To spawn child processes, see the shell plugin. ✅ ✅ ✅ ? ?
shell Access the system shell. Allows you to spawn child processes and manage files and URLs using their default application. ✅ ✅ ✅ ? ?
single-instance Ensure a single instance of your tauri app is running. ✅ ✅ ✅ ❌ ❌
sql Interface with SQL databases. ✅ ✅ ✅ ✅ ✅
store Persistent key value storage. ✅ ✅ ✅ ✅ ✅
stronghold Encrypted, secure database. ✅ ✅ ✅ ? ?
torch Control the device flashlight (torch) on Android and iOS. ? ? ? ✅ ✅
updater In-app updates for Tauri applications. ✅ ✅ ✅ ❌ ❌
upload Tauri plugin for file uploads through HTTP. ✅ ✅ ✅ ✅ ✅
websocket Open a WebSocket connection using a Rust client in JS. ✅ ✅ ✅ ? ?
window-state Persist window sizes and positions. ✅ ✅ ✅ ❌ ❌
  • ✅: (Partially) Supported
  • ❌: Not supported
  • ? : Unknown/Untested or Planned

Contributing

PRs accepted. Please make sure to read the Contributing Guide before making a pull request.

Partners

CrabNebula

For the complete list of sponsors please visit our website and Open Collective.

Languages
Rust 57%
TypeScript 25.4%
Kotlin 9.8%
Swift 5.5%
JavaScript 1.4%
Other 0.8%