App for children

I’m new to Android app development and I’m trying to create a simple puzzle game for children, in blueprints. It’s finished, however Google rejected it “because it is primarily child-directed and uses the Google API to access Google Account data”. I know I could get it approved by setting that it’s not Primarily Child-Directed, but that would be the easy way out. The game is not using any info or accessing any account data.
Here is the info …

  • on Google Play Console: it’s not using Google Play services, and therefore no API is needed
  • in UE4: it’s not using Google Play Services, and “Online Subsystem GooglePlay” plugin is disabled
  • I’ve packaged it with ManifestRequirementsOverride.txt so that it only requires 5 basic permissions:
    android.permission.INTERNET
    android.permission.READ_EXTERNAL_STORAGE
    android.permission.WRITE_EXTERNAL_STORAGE
    android.permission.ACCESS_NETWORK_STATE
    android.permission.ACCESS_WIFI_STATE

Does anyone have any hints how to solve this? Thanks in advance! :slight_smile:

Congrats on Publishing, or being close to it.
Did you read Mike’s post on Packaging to Android APK, and Google play store?

Just asking. #8 on his list shows problems with the google play account, and publishing.

Thanks for the tip! I’ve seen (and followed) that guide, however I’m not using Google Play Game Services at all (leader-boards, achievements …), so that should be a problem. I guess I could try to create a new Google Play Game service, then disable all APIs, who knows, it might even work. I’m just not sure if UE4 has some access to google accounts by default, and if there is some way to disable it.

Here’s a screenshot of rejection message. I’m not using any API or accessing any account data, so I’m completely puzzled by this.

eb0766c92f0f91a5949a6aee1331708775b625dc.jpeg

android.permission.GET_ACCOUNTS is not needed if you aren’t using Google Play Games. In 4.16 you can turn off the inclusion of this permission with a checkbox, but the ManifestRequirementsOverride.txt should work for what you are doing. This was really only needed so we could get the authtoken for the reset achievements REST API call. If you don’t have a login request for Google Play Games then I don’t believe there is anywhere else it would be trying to use this. GameActivity.java is where the request was done in 4.15 in onConnected(). Removing the getAccountName and getToken calls here would remove any code they might be detecting; just comment out the lines and pass a blank string for accesstoken.

Thanks a lot for your answer Chris, I really appreciate it!
Yeah, I’m not using Google Play Games neither on Google Developer Console, or in game. I’m also not using android.permission.GET_ACCOUNTS or calling any google/android related functions within the game.
Currently I’m using UE 4.14 for this project (it’s a pet-project I was primarily doing for my daughter :)), and I’m using blueprints. I’ll try to migrate it to 4.16 and see how it goes.

Thanks again for all your help guys :slight_smile:

Chris, you’re a savior!
I’ve made a backup of GameActivity.java (the one where the engine is installed, not in project folder) and on 2 spots I’ve commented out


String email = Plus.AccountApi.getAccountName(googleClient);
Log.debug("Google Client Connect using email " + email);

and changed accesstoken to empty string (also on 2 locations):


String accesstoken = "";//GoogleAuthUtil.getToken(GameActivity.Get(), email, "oauth2:https://www.googleapis.com/auth/games");

I’ve seen that the normal way to change GameActivity would be to use Unreal Plugin Language, but I just wanted a quick test to see if this would work.
And it worked!!! Google accepted it immediately.

Note: for anyone else trying the same method: don’t leave GameActivity.java backup in the same folder, or the build will fail.

Thanks everyone for help! :slight_smile: