I started to integrate the HERE Android Starter SDK into my application.
According to the documentation (and the runtime error) the permission WRITE_EXTERNAL_STORAGE is required to initialize the MapEngine:
MapEngine.getInstance().init(..)
However I'll only be using the autocomplete functionality.
What is this permission used for in this case?
I'm wondering whether it's used at all if no maps or map images are loaded.
Since this is a quite sensitive permission to ask the users for, I am searching for ways to not require this permission.
After some hours of investigation, this is what I found out:
The HERE Android Starter SDK is very easy to integrate, but the permissions are mandatory - no matter what features are used.
In the end I decided to integrate the HERE Autosuggest REST API, since that would not require the permissions mentioned.
Information on the REST-API endpoint can be found here: https://developer.here.com/documentation/places/topics/free-text-search.html
Related
get an error saying that the application does not have enough geolocation permissions
I observed that several Cordova applications for mobile devices use the Application System Webview. However, some mobile devices have it disabled and don't allow for location sharing.
What ought I to do in this circumstance?
I've set up the Cordova-Plugin-Geolocation 4.1.0 plugin.
additionally grant permissions in config.xml
It's difficult to give a detailed answer from the little information you provided. But generally you need to request the users explicit permission to use features such as location, camera and storage. You can do this with the Cordova diagnostics plugins: https://www.npmjs.com/package/cordova.plugins.diagnostic
The documentation should tell you how.
i have a question related to Android app run time permissions.
Is it preferrable/allowed practice for developers to save users' permission preferences i.e. each user has allowed/denied any permission, on our remote server database?
Offcourse we are asking run time permission for every feature we want to use, but is it preferrable that we log on server that if user has allowed for any permission or not, please let know. Thanks
Android framework has restricted the developers to ask only those permissions which are necessary to implement a specific feature and that too if there's no other way to implement the feature without that specific permission. In your case, it seems like you have already taken care of the permissions and just want to hold the result of the asked permissions.
So the answer is YES, You can save this data and it's even considered good practice for handling permissions. Here's the reference from the official android documentation.
Greater flexibility in granting permissions
Users can deny access to individual permissions at the time they’re requested and in settings, but they may still be surprised when functionality is broken as a result. It’s a good idea to monitor how many users are denying permissions (e.g. using Google Analytics) so that you can either refactor your app to avoid depending on that permission or provide a better explanation of why you need the permission for your app to work properly. You should also make sure that your app handles exceptions when users deny permission requests or toggle off permissions in settings.
https://developer.android.com/training/permissions/usage-notes
I'm working on a project based on cloud backup which saves and restore user's call log. It was working fine for the previous version but now getting following warning. I added a description before taking permission from the user but still getting the warning.
Your app is requesting the following permission which is used by less
than 1% of functionally similar apps: WRITE_CALL_LOG
Users prefer apps that request fewer permissions and requesting
unnecessary permissions can affect your app's visibility on the Play
Store. If these permissions aren't necessary, you may be able to use
alternative methods in your app and request fewer permissions. If they
are, we recommend providing an explanation to users of why you need
the permissions. Learn more
Note: This guidance is based on a comparison with functionally similar
apps, which change over time as new apps get published and existing
apps change behavior. Therefore the warning may change even if you
don't change your permission usage.
Its a warning. If you need that permission (and it seems your app does), then you're fine. If you didn't really need it, you should remove it. Google isn't going to scan your description to see if you explain it, that level of AI isn't really possible yet. So you'll continue to get the warning.
When you open the camera the user is prompted to grant the app permission to access the camera.
Is there any way in Codename one to tell if the user has denied this permission?
With either a callback or some kind of global call?
This specific to iOS but with the recent updates to Android the same question is also relevant there.
This is now built in to the CodenameOne platform - https://www.codenameone.com/blog/switching-on-android-marshmallow-permission-prompts.html
Currently we haven't enabled the Marshmallow permission prompts by default in part due to the lack of an API to indicate that.
We have a standard API for contacts permissions which we needed in iOS and most of the API's should be ready for Marshmallow since iOS always had the ability to deny permissions.
But we need to re-think the API's for querying that detail and whether we want them to follow the style of isContactsPermissionGranted.
I noticed there is no issue to track the progress of this so I filed it.
I'm developing an app that would benefit from coarse location data, but the nature of this app is such that many users would have privacy concerns if location permission would be mandatory
I'm hoping to find a way to provide both options (with and without location perms).
AFAIK there is no way to enable location perms programmatically in Android.
All I can think of is to publish two separate app versions in Google Play but I'm not very excited about "splitting" the download and rating stats between them and the potential development overhead.
Do you have any ideas to handle this another way or how to make the separate app option as painless as possible?
For future reference:
It is now possible with the new Android M runtime permissions.
The permissions still have to be defined in manifest, so, to avoid enforcing the permission for users with older android versions, use the new <uses-permission-sdk23 /> element