Warning message Google Play "RequestLegacyExternalStorage tag in the manifest"

@vlads, I just compiled with build 3644 and now it works perfect! :clap: :clap: :clap:

So when we get this message we have to upload a new build? When we use external_storage to save data?
Is it enough to update, or are there additional steps to follow?

I made an update from the last build and released it. And how do I know now that everything is fine, and Google likes everything?
Or will I find out on May 5?

1 Like

In the Google Play Developer Console, go to the dashboard of your app. Go to the last menu item on the left side: “Guidelines - App-Contents” (or something similar, my dashboard is in german language). If there is no warning there, everything should be alright.

You can read this on this site:

I’m desagree with you. I do not have any warning in that section nevertheless I do have the warning in the Dashboard section.
I have attached a reference image:

I have updated my app and it’s fixed now. Thank you @vlads

Yes, there is a warning there, but if you read the articles behind this message (more information and following), i come to this conclusion. It clearly says if you have to make a declaration about permissions for the app, a warning will be shown in this menu.

I hope this can be resolved soon, as I save files to DocumentsDirectory and don’t want this to result in Google breaking our game.

I read the article, but I wonder why there is a warning?

So it sounds like if your app uses just the normal DocumentsDirectory we can just rebuild with 3644 and we’re good to go.

But what about the apps that save and read files from things like Photos? Do we need to add any special permissions into our build.settings for those apps? I’m not seeing any updates in the documentation for those.

This is what we have in our build.settings now, does any of this need to be updated if we need to read/write to the photos album?

    usesPermissions =
    {
        "com.android.vending.BILLING",
		"android.permission.WRITE_EXTERNAL_STORAGE",
		"android.permission.CAMERA",
		"android.permission.INTERNET"	
    },		
	usesFeatures =
    {
        { name = "android.hardware.camera", required = false },		 
		{ name = "android.hardware.camera.front", required = false },
	}

I take it this is the “Compliance with the rules” clause?

We submitted new versions of the app with build 3644. However now they are live and we still see the error warning in our Dashboard. How can we confirm we’re compliant?

4 posts were split to a new topic: Build 3644 - Accessing Camera on Android crashes

Something is weird.
I have multiple apps and there are no warnings in the “App Contents section” of all apps. (both rebuild 3644 or not) But all dashboards show the same warning. This warning is not cleared even after rebuild with 3644.

Do you have some plugins which may be requiring external permission flag? Check your APK for permission. You can check permissions by opening APK with Android Studio (drag&drop it on welcome window). Then inside APK you can click on the manifest and read it’s permission and check if it has legacy flag in header.

The behaviour of my apps is exactly as @chodongwon82’s app. My “App Contents” section is out of warnings, but my dashboard show the warning.

These are the permissions in my maifiest file:

<uses-sdk android:minSdkVersion="16" android:targetSdkVersion="29"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
    <uses-feature android:glEsVersion="20000" android:required="true"/>
    <uses-feature android:name="android.hardware.telephony" android:required="false"/>
    <uses-feature android:name="android.hardware.screen.portrait" android:required="true"/>
    <uses-feature android:name="android.hardware.screen.landscape" android:required="false"/>
    <uses-permission android:name="com.android.vending.BILLING"/>
    <uses-permission android:name="android.permission.WAKE_LOCK"/>
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE"/>

In your case, I think the problem is <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

The <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> gets automatically added when using Appodeal plugin. However, in the warning, they only mention the requestLegacyExternalStorage flag and MANAGE_EXTERNAL_STORAGE permission. Non of this are added to the app.

So we should be ok? I don’t think that the console warning is meant to go away by itself, but you can easily click on the Dismiss button, and pufff, it’s gone!

1 Like

I’m also using the Appodeal.
and other plugins below.

    ['plugin.vibrator'] = spiralcodestudio_plugin('vibrator'),
    ["CoronaProvider.native.popup.social"] =
    ["CoronaProvider.native.popup.activity"] =
    ["plugin.gpgs.v2"] = 
    ["CoronaProvider.gameNetwork.apple"] =
    ["plugin.google.iap.billing"] =
    ["plugin.iCloud"] =
 ....
    usesPermissions =
    {
        "android.permission.INTERNET",
        -- "android.permission.WRITE_EXTERNAL_STORAGE",
        "android.permission.ACCESS_NETWORK_STATE",
        "com.android.vending.CHECK_LICENSE",
        "com.android.vending.BILLING",
    },

Android Studio > Profile or debug APK

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="com.android.vending.CHECK_LICENSE" />
<uses-permission android:name="com.android.vending.BILLING" />

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.android.alarm.permission.SET_ALARM" />
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE" />

Yes, I know that. But that warning in the Console does not have sense if the app Content is empty and the Sensitive app permissions section show this message:

Your app doesn’t request sensitive permissions, so you don’t need to do anything here

So?