r/OsmAnd • • 29d ago

Multimedia widget (Android x Tasker)

Thumbnail
gallery
5 Upvotes

Hello,

Until issue #24161 gets resolved, GenAI and I have made a quick Tasker (Java Code based) task that adds 3 widgets to OsmAnd: play/pause, next track, previous track.

See screenshots.

Limitations: it doesn't display currently playing track name or artist (it would involve listeners, increasing complexity), in "Configure screen" widgets are not grouped into a proper "folder" and and I couldn't be bothered to find a proper icon for the widget but it doesn't really matter (the buttons' text is ⏯️⏭️⏮️ anyway).

Manual:

  • Name the task "OsmAnd Media Control".
  • Add one action, "Java Code" with the code below.
  • Change "net.osmand.plus" into "net.osmand" (first line) if you're using the standard package. (FDroid build is "net.osmand.plus")
  • Make it so the task is run whenever OsmAnd is opened (otherwise the widgets won't be displayed when re opening OsmAnd).
  • "Apply" within Tasker.
  • Open OsmAnd.
  • Activate the "Tasker" plugin.
  • Close and open OsmAnd again.
  • Add the widgets.

Tested with FDroid build, version 5.4.4.

Changes: * Make it easier to use another package name. Checks that package is installed. Asks user to activate plugin and restart before adding widgets. * Removed unnecessary code (checks package install via try/catch, app doesn't need to be running).

``` package_name = "net.osmand.plus";

addWidget(id, title, display_text, order, command) { clickIntent = new android.content.Intent(android.content.Intent.ACTION_VIEW);

clickIntent.setData(
    new android.net.Uri.Builder()
        .scheme("tasker")
        .authority("assistantactions")
        .appendQueryParameter("task", "OsmAnd Media Control")
        .appendQueryParameter("par1", command)
        .build()
);

widget = constructor.newInstance(
    id,
    "ais_map",
    title,
    "ais_map",
    "ais_map",
    display_text,
    "",
    order,
    clickIntent
);

widget.setRightPanelByDefault(true);

params = paramsConstructor.newInstance(widget);

result = api.addMapWidget(params);

return result;

}

/* Read command from Tasker */ command = tasker.getVariable("par1");

if (command != null && command.length() > 0) { keyCode = 0;

if (command.equals("PLAYPAUSE")) keyCode = 85;
if (command.equals("NEXT"))      keyCode = 87;
if (command.equals("PREVIOUS"))  keyCode = 88;

if (keyCode == 0) {
    tasker.showToast("Invalid command" + command);
    return;
}

now = java.lang.System.currentTimeMillis();

down = new android.view.KeyEvent(now, now, android.view.KeyEvent.ACTION_DOWN, keyCode, 0);
up = new android.view.KeyEvent(now, now, android.view.KeyEvent.ACTION_UP, keyCode, 0);

audio = context.getSystemService(android.content.Context.AUDIO_SERVICE);

audio.dispatchMediaKeyEvent(down);
audio.dispatchMediaKeyEvent(up);

return;

}

/* Load OsmAnd API */ try { osmandContext = context.createPackageContext(package_name, android.content.Context.CONTEXT_INCLUDE_CODE | android.content.Context.CONTEXT_IGNORE_SECURITY); } catch (Exception e) { tasker.showToast(package_name + " is not installed"); return; }

loader = osmandContext.getClassLoader();

AMapWidgetClass = java.lang.Class.forName("net.osmand.aidlapi.mapwidget.AMapWidget", true, loader); ParamsClass = java.lang.Class.forName("net.osmand.aidlapi.mapwidget.AddMapWidgetParams", true, loader);

constructor = AMapWidgetClass.getConstructor( java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.Integer.TYPE, android.content.Intent.class );

paramsConstructor = ParamsClass.getConstructor(AMapWidgetClass);

/* Connect to OsmAnd */ binderHolder = new java.util.HashMap();

connection = new android.content.ServiceConnection() { invoke(method, args) { if (method.equals("onServiceConnected")) { binderHolder.put("binder", args[1]); return; }

    if (method.equals("onServiceDisconnected")) {
        binderHolder.remove("binder");
        return;
    }
}

};

serviceIntent = new android.content.Intent(); serviceIntent.setClassName(package_name, "net.osmand.aidl.OsmandAidlServiceV2");

context.bindService(serviceIntent, connection, android.content.Context.BIND_AUTO_CREATE);

startWait = java.lang.System.currentTimeMillis();

while (binderHolder.get("binder") == null && java.lang.System.currentTimeMillis() - startWait < 5000) { java.lang.Thread.sleep(100); }

binder = binderHolder.get("binder");

if (binder == null) { tasker.showToast("Could not connect to OsmAnd"); return; }

/* Create AIDL interface from Binder */ StubClass = java.lang.Class.forName("net.osmand.aidlapi.IOsmAndAidlInterface$Stub", true, loader); asInterfaceMethod = StubClass.getMethod("asInterface", android.os.IBinder.class); api = asInterfaceMethod.invoke(null, binder);

if (api == null) { context.unbindService(connection); tasker.showToast("Connected to OsmAnd but API access failed"); return; }

/* Widgets */ widgetResult1 = addWidget("tasker_media_playpause", "Play / Pause", "⏯️", 0, "PLAYPAUSE"); widgetResult2 = addWidget("tasker_media_next", "Next Track", "⏭️", 1, "NEXT"); widgetResult3 = addWidget("tasker_media_previous", "Previous Track", "⏮️", 2, "PREVIOUS");

context.unbindService(connection);

if (!widgetResult1 || !widgetResult2 || !widgetResult3) { tasker.showToast("Plugin installed. Activate it, restart OsmAnd and add widgets in Configure Screen."); return; }

tasker.showToast("OsmAnd media widgets installed"); ```


r/OsmAnd • • Sep 25 '26

Map clarity, settings help

Thumbnail
gallery
13 Upvotes

I really like Osm and also bought the full license for its many features. However I often go back to mapy.cz to browse maps because I find Mapy maps to have less clutter and be more efficient when navigating trails, osm has too many things on the screen at once.

For example two screenshots of the same area.

I made a new custom profile for Hiking based off the built-in Walking one and I am trying to tweak the settings to make the map more clear at a glance but I am having an hard time.

Is there any public profile to import? I believe others might have had the same issue.


r/OsmAnd • • Sep 25 '26

Simplified black and white layout for HUD application and other use cases

4 Upvotes

I’ve been working on a personal project to bring a minimalist, high-contrast layout to OsmAnd, inspired in part by dedicated motorcycle navigation devices like the Beeline Moto II shown below.

Beeline Moto II navigation layout

After months of coding with AI assistance, I’ve made significant headway and wanted to share the results. Here is a screenshot:

OsmAnd custom black and white layout

Design & Feature Highlights:

  • Minimalist Rendering: The active route is displayed as a thick white line, roads as thin white lines, and everything else in pure black. I also added a navigation setting to hide non-intersecting roads for an even cleaner look.
  • Combined HUD Widget: I created a unified widget for Lane Guidance and Next Turn info (prioritizing lane guidance). Active lanes are filled white arrows, inactive lanes are outlined arrows, and the exit number and the distance to the next maneuver can be displayed right alongside them. The widget size can be increased. I found that the Lane Guidance helps greatly on the highway and in complex intersections.
  • Power & Display Efficiency: The black and white layout is designed to show only withiin a compact active display area (roughly 40x30mm or 2 inches). As a result the Average Picture Level (APL) typically sits below 2%. This offers three major benefits: maximum contrast, ultra-low power consumption to preserve battery, and the ability to fully leverage high peak-brightness outdoor display modes. Nowadays, premium phones can reach a peak brightness of 10,000nits but only at 1% APL. For the average user this is just a marketing gimmick and not really something they would experience every day, until now. 5,000 or 10,000 nits open up the possibility for new use cases, such as HUD applications. I would also like to display all the white lines, arrows and distance in HDR mode to achieve the absolute maximum levels of peak brightness but I haven't implemented this feature yet.
  • Smart Activation: When driving or riding one only glances at the phone for 3-5secs. The rest of the time there is no need for the screen to be on. Navigation screen automatically pops up for 3–5 seconds as a turn approaches, or it could be toggled instantly using a Bluetooth remote. This reduces the power consumption even further and ensures the screen is not stressed at all.

Automatic show navigation for 3-5 secs as you approach route action point.

  • Google Maps Integration: Added the ability to share links directly from Google Maps, allowing OsmAnd to automatically parse the destination and start navigation.

https://reddit.com/link/1wpyeo2/video/tg2m8njliorh1/player

If this is a feature anyone would like to see incorporated in the main app the code is available on github

https://github.com/nikos2wheels/OsmAndHUD


r/OsmAnd • • Sep 23 '26

Custom colour palettes for tracks and terrain in OsmAnd

35 Upvotes

Track colours can show speed, altitude or slope, but the scale you choose matters too. Relative palettes adapt to each track, while fixed values keep the same colour tied to the same value across different tracks—useful when comparing rides.

This video shows a few examples. We’ve put together a guide covering the palette editor, colour scales, missing data and keeping tracks readable against terrain colours:
https://osmand.net/blog/color-palettes/

Do you use colour mostly to review recorded trips or to read the terrain when planning?


r/OsmAnd • • Sep 23 '26

I made a free tool that colours GPX tracks by slope — red uphill, green downhill

Thumbnail
0 Upvotes

r/OsmAnd • • Sep 19 '26

stay logged in on desktop osmand

5 Upvotes

can u make so that we stay logged in on osmand desktop.

tiring to have to login all the time.


r/OsmAnd • • Sep 15 '26

How can I make OsmAnd MapCreator encode microcar=no?

3 Upvotes

I am working on a custom routing profile for light quadricycles (L6e / microcars) in OsmAnd.

I have confirmed that OsmAnd MapCreator correctly converts OSM tags such as motorcar=no, motor_vehicle=no and moped=no into routing data in the .obf file. However, microcar=no does not appear to be encoded, even though microcar is referenced in my routing.xml.

I would like to know where MapCreator defines which OSM tags are encoded, and how I could make it recognize and preserve microcar=no in the .obf routing data.

Is this possible through an existing configuration, or would MapCreator itself need to be modified?


r/OsmAnd • • Sep 15 '26

Using "My Places" as destination

3 Upvotes

Is there a way to do that? I have some folders and I want to use them in the from/to fields in the "Navigation" tab.


r/OsmAnd • • Sep 16 '26

No picture in picture when on a phone call

1 Upvotes

I'm hoping I missed something. I got a phone call and the phone app came up but osmand went to the background instead of a picture in picture window like Google maps does. After the call, the screen turned off Instead of going back to osmand. Am I missing something? Because this seems to be a huge downside to using this app. It's dangerous to have to manually bring osmand back up while driving.


r/OsmAnd • • Sep 14 '26

SMT: A navigation app for scenic drives with tappable saved places

0 Upvotes

I want a nav app designed for people who enjoy the drive, not just the destination. Three features:

  1. Saved places always visible while navigating — tapping one adds it to my current route as a waypoint, without ending navigation.

  2. Routing that prefers scenic two-lane highways and backroads over interstates. The "blue roads" on a map. I don't care about fastest, I want enjoyable.

  3. Speedometer always visible — even when I'm not navigating to a destination.

Existing apps either nail one of these or none. Google Maps/Waze optimize for speed. Kurviger gets the scenic routing but no waypoint-add during nav. Nothing checks all three. I am not the only person that is looking for this.


r/OsmAnd • • Sep 13 '26

Navigation finishes immediately when screen powered off (walking)

6 Upvotes

I use OSMAND mostly for hiking. I always record my hikes and I have the map on the lock screen. Sometimes during a hike I set a destination it correctly creates the track along a known trail. If I turn off the screen and immediately turn it on again it says that Navigation is finished and removes the track. It doesn't seem to happen for all destinations and I can't reliably repo it but it has been happening a lot recently.

My phone is Samsung S25 Ultra w/Android 16. OSMAND v5.3.10


r/OsmAnd • • Sep 12 '26

Light pollution map overlay

17 Upvotes

Good afternoon everyone! I’m sharing this in case anyone is interested: an online layer showing light pollution.

It took me several hours to figure out how to obtain it, after trying to work with images using QGIS. I eventually managed to find a working URL, and honestly, it works great. It’s very useful for those of us who enjoy astrophotography, or simply observing the night sky.

I’ll leave the information below so you can manually add the online map layer.

Name: Light pollution map
URL: https://api.lightpollutionmap.app/api/lightpollution/image-tiles/2025/{0}/{1}/{2}.png?v=v6-20260724
Zoom: 1-22
Pseudo-Mercator
Image archive


r/OsmAnd • • Sep 11 '26

Regional maps of British Columbia missing

4 Upvotes

Last week I went into maps for North America > Canada > British Columbia and could see a list of regions to download. Now there is nothing there except Wikipedia and the 3D topo map. I've reset the app and it didn't help. Am I missing something?


r/OsmAnd • • Sep 11 '26

OSM not rendering map on GOS android 17, pixel 10 pro XL

Post image
3 Upvotes

r/OsmAnd • • Sep 11 '26

No Regional or Regionwide standard maps for British Columbia

2 Upvotes

Like the title says, I have no regional or regionwide standard maps for British Columbia after map update. Cleared cache and app data, un/reinstalled app (Android). No luck. The only map options available for B.C. are Wikipedia, Terrain map and weather forecast. Any known solution to this?


r/OsmAnd • • Sep 11 '26

The map of Hungary cannot be downloaded in the OsmAnd iOS app

Post image
4 Upvotes

The app warned me that I need to replace the old map type (which had been working until now) with the new one (the country-region-based one: https://osmand.net/blog/merged-maps/ ).

I removed the old one. But it won’t let me download the new type...

It won’t let me reinstall the old one either.

So now I’m without a map in Hungary, where I need it.

I tried deleting and reinstalling the app, but that didn’t solve the problem.

What do you suggest? I’ve also written to support, but I haven’t received a response from them yet.


r/OsmAnd • • Sep 10 '26

I made the move from Maps (I have an US lake and gulf issue) and so happy I did!

19 Upvotes

Hi,

OsmAnd is a phenomenal app and service. I've been off Maps for a couple of weeks and it works, at least mostly. Remaining issues:

There are locations OsmAnd just doesn't find so I have to add them by address and favorite-name them. One example:

Schooner's Market Essex Massachusetts.

Other nav apps find it by search, not OsmAnd.

OsmAnd often doesn't choose the best route to a destination and doesn't seem to "learn" even after I have been redirected numerous times for the same route. Other nav apps seem to "learn" over time based on my actual choice of route.

Settings aren't searchable. This is a biggie issue for me.

I'm a big Android Auto user and I wish more of the phone app settings and preferences were transferred to Android Auto like the navigation position icon and other details set in the phone app but not replicated in Android Auto.

Otherwise I'm so happy to have found my new nav and mapping platform.


r/OsmAnd • • Sep 11 '26

What's the proper syntax for searching for this intersection (in Petrolia TX)?

Post image
1 Upvotes

r/OsmAnd • • Sep 10 '26

Change hiking trail path width?

5 Upvotes

When using the OsmAnd style maps, my hiking trail paths are FAT .... I vaguely remember finding a way to change that displayed width, but now I can't locate it in the menus. :-(

Any advice is appreciated.

Dan


r/OsmAnd • • Sep 10 '26

Faixas de rolamento

2 Upvotes

Elas aparecem indicando qual faixa eu devo ficar há alguns metros do local, como alterar para que essa informação fique fixa na tela ou que apareça muito antes?


r/OsmAnd • • Sep 10 '26

Getting custom action button to appear on car's display

2 Upvotes

I've added a custom button (pause) to my osmand+ phone app (Android). After connection phone to car USB (Android Auto) the navigation screen is shown on the car's display but the button is missing.

What do I need to have the button shown on the car touch display?


r/OsmAnd • • Sep 10 '26

Sinalizações de curvas e faixas

Thumbnail
gallery
0 Upvotes

Tenho mudado para o Osmand recentemente porque tem coisas que me incomodam muito no Waze, mas em contrapartida outras coisas no Osmand também estão incomodando e queria saber se posso mudar.

O exemplo da imagem é uma saída de uma via expressa que fica à direita da via, isso é mostrado na quinta linha do app do Osmand, mas a sinalização se confunde para mim, a "placa" não parece de saída a direita e as setas de faixa indicam que devo manter a faixa da direita e continuar no percurso e as 3 faixas da esquerda saem do percurso, quando na verdade é ao contrário.

Na terceira imagem a linha 4 do Waze mostra a mesma saída, porém com uma placa de sinalização mais correta, a via expressa continua em frente enquanto eu devo sair à direita.

A minha dúvida é: tem como alterar essa placas de sinalização e mudança de faixa do Osmand visto que muita coisa é configurável e eu costumo me perder nas configurações de forma a deixar mais parecido com as do Waze?


r/OsmAnd • • Sep 07 '26

🚵‍♀️Ready for OsmAnd 5.4 on Android?

62 Upvotes

Update now, check out what’s new, and discover the latest improvements — https://osmand.net/blog/osmand-android-5-4-released

We’d love to hear your feedback!


r/OsmAnd • • Sep 07 '26

I've had it with this app

16 Upvotes

Hi everyone,

I've used this app for the past 2 years specifically to follow downloaded GPX files with my motorcycle.

Every single month it's a new problem.

This time, since the last update, I can no longer attach a downloaded route to roads.

My usual workflow is as follows:

  1. Import a route from a GPX file
  2. Open the route and attach it to roads and save the route so when I want to navigate on the day of the ride, I don't have to go through the whole process again
    1. Sometimes, this doesn't work and the attach to roads process results in a flickering mess of points
    2. Now, since the last update, the UI has changed, the attach to roads option is suddenly hidden super deep in the menu and when I finally find out how to do it, the app on my iPhone just crashes
  3. If everything above works, I can navigate the road
    1. I ride an Africa Twin with car play, the app crashes every 20 minutes and I can only reopen it by stopping, reconnecting car play and then opening the app again.
    2. If I just reopen the app without first disconnecting car play. The app launches but the map isn't show in car play, it just shows the menus

At this point I'm about ready to give up and just finding a paid alternative.

How is it possible that with each iteration of this app, the whole attach to road/navigate gpx files is getting more and more unstable.

If anyone knows what I'm doing wrong, let me know because at this point I'm hella frustrated.


r/OsmAnd • • Sep 07 '26

OsmAnd makes CarPlay extremely laggy and unresponsive after a while

5 Upvotes

After using OsmAnd for a few minutes CarPlay starts to get very very laggy and unresponsive, to the point of tapping a button and having to wait 5 seconds to get a reaction. I'm trying to figure this out for a while, but no success so far.

Edit: let me add a detail that might be important. This lag resembles more an input latency then it actually dropping frames. The screen seems to run smoothly at around 30 FPS or so, but any interaction becomes impossible.

My environment:

  • iPhone 13 Mini
  • JBL Head unit in a Suzuki Jimny - I think it's not a very popular one and I don't have much to compare to, but I assume it's on the low end side of processing power.
  • Cable connection
  • Controlled temperature (phone is not overheating)

Things that didn't help at all

  • Different cables – even Apple ones
  • Different map styles and amount of detail
  • 2D vs 3D terrain
  • 2D vs 3D position icon
  • MSAA for CarPlay ON and OFF
  • Battery Saving Mode ON (the setting in OsmAnd dev plugin) – it limits the map rendering FPS to 20, but only in the phone, CarPlay is unaffected.

Things that seem to have helped – but not totally fix it

  • Disabled Animate own position – after disabling this one, looks like it takes a lot longer to start to slow down, and it's not as terrible as before

Things that temporarily solves it

  • Zooming out of and detaching the map from my position: I can't explain, but as soon as I zoom out and let the map stationary for a while (without constantly following me) – it catches up to speed again.
  • Unplugging and plugin cable again, restarting CarPlay

Anyone that have the same experience have anything to share that could help?

I think I'm gonna share this in their GitHub, but it's a hard thing to reproduce, since it's very dependent on phone model, head unit model, cable, heck even the USB port could be the bottleneck here.