maplibre / maplibre-navigation-android

Maplibre Navigation SDK for Android
MIT License
86 stars 44 forks source link

Permissions by default #98

Open Fabi755 opened 9 months ago

Fabi755 commented 9 months ago

The problem that fixed in #90 also appears on my app.

Similar to the location permission, we should thinking about to add the service permissions to the library AndroidManifest file.

If we don't want it, maybe for the reason that not all apps will use the active navigation notification, we should check for available permissions and use the given service only when permission is set.

I tend to add the permission to the library. What's your opinions to that?

boldtrn commented 9 months ago

Could you clarify on the impact of this? Are there downside of adding this?

In general my feeling is that, all permissions that are required by this library should also be added to the Manifest.

Fabi755 commented 9 months ago

The SDK is showing a notification with current running navigation state. This notification is a foreground notification. The user can see, that the navigation is continue running and his location is used.

Without this permission, the location can not accessed when the app is minimized to the background. And on newer Android versions (>= API 34/Android 14) the app will crash, while the SDK is using this without setting the permission.

Downside is, that Google will ask for the reason of using this permission. You need append also a Video to show the use case.

Bildschirmfoto 2023-12-05 um 15 55 33

Sorry, the screenshot is in german. I don't find the language switch for the Play Console.


I think the right way is to adding this permission by default. It make sense to keep the location accessed and also keep the navigation running on minimized state. But maybe there are some developers that don't want use this feature and will hide the notification. Then the permission is useless and my block the Play Store review process.

What do you think? Do we add the permission by default until some users may report an issue. Or do we want add a simple configuration parameter for the notification and add some documentation hint.

boldtrn commented 9 months ago

What do you think? Do we add the permission by default until some users may report an issue. Or do we want add a simple configuration parameter for the notification and add some documentation hint.

Is it possible to do this with a simple configuration setting? If yes, I think this would be perfect.