This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

nRF Master Control panel not working with android marshmallow

I am using nRF Master Control panel for testing my peripheral changes. It works fine until i upgrade my nexus 5 to android Marshmallow. Now the app cant even find BLE device during scan.

Seems like Marshmallow is strict, Need to get permission before accessing BLE layer. Please advise.

  • Hi Daniel,

    It actually works on my Nexus 5 but as you said Android M needs "Location" permission because LE peripherals are considered as tracking devices (which is quite correct). Unfortunately they implement it wrongly and permission itself is not enough (latest MCP from Play store has it I believe) but you need to really enable "Locations" peripheral in the system. I hope this is a bug which will be corrected but in the meantime you need to settle down with it. Then you will see the advertisements in Scan view as usually.

    Cheers Jan

  • Hi,

    In my opinion it's not a bug. Beacons can be used to determine user's location, so both the location permission and enabling location service should be required if an app wants to scan for BLE devices. I'd rather said that before it was a 'bug' or a hole in security. An app still may connect and use bonded devices without location permission nor the service which is also correct.

    The next version of nRF MCP will show a message in case the permission is not granted or location service is disabled.

  • Hi Aleksander,

    I understand the intention but if this should be "security fix" then something is wrong (I mean worse then it is already) with Android dev team. Just because I need to do scanning for few minutes I now expose my location to all apps which are eagerly waiting for it and I've seen end users who need to use BLE without bonding during whole day (yes, bonding doesn't scale so having all security on application layer - especially considering how pathetic default security of BT Smart is - is not the option but way to go) and by forcing them to enable location they drained the battery in few hours (because they enabled "precise" location with GPS by mistake) or just degraded battery life time significantly (because suddenly dozens of apps start to use location for tracking of whatever).

  • ...and it might make a sense if you could restrict particular app from accessing the locations in "Location" menu of the "System" (even it would be inconvenient and many uneducated users would never find it/do it so effectively it would just open the door to unwanted tracking by apps claiming that user permitted it in the settings) but if you go there you can only disable the app as such! Why Google Service and Contacts should now anything about my location??? Why IKEA app should know where I'm? And dozen of others just in my phone (all of them being from top developers with 100,000+ downloads)? Ridiculous.

    Cheers Jan

Related