androidaltbeacon

Upload Android App using Alt Beacon got rejected


I uploaded my app into the Google Play and got an message

"APK 300303: Policy Declaration - Data Safety Section: "http://data.altbeacon.org/"

How can I fix it?

I tried to remove all URLs that call to Beacon, but it's still not working.


Solution

  • Google Play has become extremely strict about a number of data sharing policies that must be declared. The rejection is flagged simply because the Android Beacon Library downloads an updated configuration file holding Android device model data on first launch. Because the standard Android HTTP Client includes a user agent string with info like the Android phone model and OS version, Google interprets this as "data sharing." If interested, you can see the source code that does this here.

    A few options for fixing this:

    OPTION 1: Fill out the Data Safety form in Google Play Console.

    1. Go to https://play.google.com/console and log in, selecting your app
    2. In the left menu choose "App content" under "Policy and programs"
    3. In either then "Need attention" or "Actioned" tabs, choose "Data Safety"
    4. Fill out this section. For the purpose of what the Android Beacon Library does, you can say "no" to pretty much everything as long as you check the checkbox below. (Because the User Agent field includes the device model, and operating system version):

    enter image description here

    Be sure you fill out the form properly for any other internet access that your app does aside from the Android Beacon Library.

    OPTION 2:

    Disable the Android Beacon Library's ability to update device models at boot. The easiest way to do this is to disable internet permission access from your app -- the library won't try to update its configuration without this permission. If you need to grant your app internet access for other purposes anyway, then you will need to perform option 1, as your app will probably be rejected by Google for other internet calls your app makes unless you fill out that form.

    To perform this option:

    1. Edit your AndroidManifest.xml
    2. Remove any line with <uses-permission android:name="android.permission.INTERNET"/>

    OPTION 3:

    Add code to block performing the model update:

    BeaconManager.setDistanceModelUpdateUrl("")