Code Monkey home page Code Monkey logo

Comments (5)

mariobehling avatar mariobehling commented on September 25, 2024

Google still rejects the app. Could you please check to implement the feature as described in the Google documentation?

Issue found: Prominent disclosure not found
Your app must display a prominent disclosure in a dialog that appears before your app’s location runtime permission. Based on our review, a prominent disclosure didn’t appear. (See Google Play Policy - Declared permissions and in-app disclosures video for an example of a dialog that pops up in the app with the necessary information.)

To bring your app into compliance, follow these steps:

Read through the Help Center article about understanding location in the background permissions for more information.
Review the prominent disclosure and consent requirements and add a prominent disclosure.
Your prominent disclosure must appear before your app’s location runtime permission.
Include at least the following sentence, which you adapt to include all the relevant features requesting access to location in the background in your app that are readily visible to the user: “This app collects location data to enable {feature}, {feature}, and {feature} even when the app is closed or not in use.” If you extend permitted usage to ads, also include: “This data is also used to provide ads/support advertising/support ads.”
Include any other details necessary to make it clear to the user how and why you’re using location in the background. While additional content is permitted, it should not cause the required content to not be immediately visible.

from badgemagic-android.

mariobehling avatar mariobehling commented on September 25, 2024

Google rejected it again.

Issue details

We found an issue in the following area(s):

In-app experience: Please see attached screenshot IN_APP_EXPERIENCE-2431.png
To bring your app into compliance, follow these steps:

Read through the Help Center article about understanding location in the background permissions for more information.
Review the prominent disclosure and consent requirements and update your prominent disclosure:
Make sure your prominent disclosure includes the term “location”.
Indicate how location is used in the background by including one of these phrases: “background” / “when the app is closed” / “always in use” / “when the app is not in use”.
Include a list of all the features that use location in the background.
If you extend permitted usage to ads include: “used to provide ads/support advertising/support ads.” (Choose the most accurate phrasing.)

IN_APP_EXPERIENCE-2431

from badgemagic-android.

mariobehling avatar mariobehling commented on September 25, 2024

This is what we need:
https://developer.android.com/develop/connectivity/bluetooth/bt-permissions#assert-never-for-location

Strongly assert that your app doesn't derive physical location
If your app doesn't use Bluetooth scan results to derive physical location, you can make a strong assertion that your app never uses the Bluetooth permissions to derive physical location. To do so, complete the following steps:

Add the android:usesPermissionFlags attribute to your BLUETOOTH_SCAN permission declaration, and set this attribute's value to neverForLocation.

Note: If you include neverForLocation in your android:usesPermissionFlags, some BLE beacons are filtered from the scan results.
If location isn't otherwise needed for your app, remove the ACCESS_FINE_LOCATION permission from your app's manifest.

The following code snippet shows how to update your app's manifest file:

<manifest>
    <!-- Include "neverForLocation" only if you can strongly assert that
         your app never derives physical location from Bluetooth scan results. -->
    <uses-permission android:name="android.permission.BLUETOOTH_SCAN"
                     android:usesPermissionFlags="neverForLocation" />

    <!-- Not needed if you can strongly assert that your app never derives
         physical location from Bluetooth scan results and doesn't need location
         access for any other purpose. -->
    <strike><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /></strike>
    ...
</manifest>

from badgemagic-android.

mariobehling avatar mariobehling commented on September 25, 2024

Feedback from Google:

Step 1: Review the policy violation with your app

We found that your app is not compliant with the Location Permissions policy, or we were unable to review and verify your in-app experience for compliance with this policy.
Specifically,

Missing information in prominent disclosure

Your prominent disclosure must appear before your app’s location runtime permission, and should tell the user which feature(s) will use location in the background. Based on our review, your app’s prominent disclosure did not include the term “location” / indication that the nature of usage is in the background by using one of the following phrases “background” / “when the app is closed” / “always in use” / “when the app is not in use” / a list of all the features that use location in the background / one of the following phrases “used to provide ads / support advertising / support ads” (if you extend permitted usage to ads).

To meet the policy requirements, it is recommended that you reference one of the following example formats, the second example includes the use of location for ads (choose the most relevant phrasing):

“[This app] collects location data to enable ["feature"], ["feature"], & ["feature"] even when the app is closed or not in use.”
“[This app] collects location data to enable ["feature"], ["feature"], & ["feature"] even when the app is closed or not in use and it is also used to support advertising.”
Example: “Fitness Funds collects location data to enable fitness tracking even when the app is closed or not in use.”

Therefore I guess we need something like this:

Badge Magic collects location data to enable Bluetooth Low Energy and to connect to LED badges and transfer data to the badges even when the app is closed or not in use. No location data is transferred to external devices or our servers.

Even though this is not correct, it seems we have to do it in order to satisfy Google.

from badgemagic-android.

AsCress avatar AsCress commented on September 25, 2024

This is what we need: https://developer.android.com/develop/connectivity/bluetooth/bt-permissions#assert-never-for-location

Strongly assert that your app doesn't derive physical location If your app doesn't use Bluetooth scan results to derive physical location, you can make a strong assertion that your app never uses the Bluetooth permissions to derive physical location. To do so, complete the following steps:

Add the android:usesPermissionFlags attribute to your BLUETOOTH_SCAN permission declaration, and set this attribute's value to neverForLocation.

Note: If you include neverForLocation in your android:usesPermissionFlags, some BLE beacons are filtered from the scan results. If location isn't otherwise needed for your app, remove the ACCESS_FINE_LOCATION permission from your app's manifest.

The following code snippet shows how to update your app's manifest file:

<manifest>
    <!-- Include "neverForLocation" only if you can strongly assert that
         your app never derives physical location from Bluetooth scan results. -->
    <uses-permission android:name="android.permission.BLUETOOTH_SCAN"
                     android:usesPermissionFlags="neverForLocation" />

    <!-- Not needed if you can strongly assert that your app never derives
         physical location from Bluetooth scan results and doesn't need location
         access for any other purpose. -->
    <strike><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /></strike>
    ...
</manifest>

This permission flag I've already added in the last commit.

from badgemagic-android.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.