I added an extension in a screen which uses permission like write_exteternal_storage etc. then checked the apk, yes permission is there, then I removed that extension from screen and deleted from the project and built the apk, the permission is still there! Why the permission is not removed? You know this can cause app/account suspension on play store?
There might be other components or extensions in your project that requires wirte_external_storage permission.
Yes that’s not the problem of extension, that’s Image Component requested this permission android.permission.READ_EXTERNAL_STORAGE even if we don’t use image in it!
Yes it is required.
But if image picture is used from assets then this permission must not be there!
Google Play policies emphasize that apps should only request permissions that are absolutely necessary for their functionality. Having unnecessary permissions, like READ_EXTERNAL_STORAGE, can indeed lead to app suspension or rejection during the review process
There are components that uses those permissions Read and Write. Not just images, Read and Write is not a dangerous permission.
Read and Write permissions works only on android version < 11
Even if it is not a dangerous permission, but Google is not suspending apps and account only for dangerous permissions, they are suspending apps/accounts for minor policy breaches like this. If Image is not used from External Storage then app requesting Read External Storage permission is against their policy.
Apps must not requested any permission unnecessarily…It’s not a joke, they are serious about it and we also need to make our apps 100% compliant with Google’s policies.
READ_EXTERNAL_STORAGE
Added in API level 16
public static final String READ_EXTERNAL_STORAGE
Allows an application to read from external storage.
Note: Starting in API level 33, this permission has no effect. If your app accesses other apps’ media files, request one or more of these permissions instead: READ_MEDIA_IMAGES
, READ_MEDIA_VIDEO
, READ_MEDIA_AUDIO
. Learn more about the storage permissions that are associated with media files.
This permission is enforced starting in API level 19. Before API level 19, this permission is not enforced and all apps still have access to read from external storage. You can test your app with the permission enforced by enabling Protect USB storage under Developer options in the Settings app on a device running Android 4.1 or higher.
Also starting in API level 19, this permission is not required to read or write files in your application-specific directories returned by Context.getExternalFilesDir(String)
and Context.getExternalCacheDir()
.
Starting in API level 29, apps don’t need to request this permission to access files in their app-specific directory on external storage, or their own files in the MediaStore
. Apps shouldn’t request this permission unless they need to access other apps’ files in the MediaStore
. Read more about these changes in the scoped storage section of the developer documentation.
If both your minSdkVersion
and targetSdkVersion
values are set to 3 or lower, the system implicitly grants your app this permission. If you don’t need this permission, be sure your targetSdkVersion
is 4 or higher.
This is a soft restricted permission which cannot be held by an app it its full form until the installer on record allowlists the permission. Specifically, if the permission is allowlisted the holder app can access external storage and the visual and aural media collections while if the permission is not allowlisted the holder app can only access to the visual and aural medial collections. Also the permission is immutably restricted meaning that the allowlist state can be specified only at install time and cannot change until the app is installed. For more details see PackageInstaller.SessionParams.setWhitelistedRestrictedPermissions(Set)
.
Protection level: dangerous
Constant Value: “android.permission.READ_EXTERNAL_STORAGE”
SEE MY FRIEND >>>This is a dangerous permission
Lol! ListView also request this dangerous permission!
If we ignore and build apps including such irrelevant permissions which have no connection with our app’s functionality then Google will suspend our apps/account! Just for these silly things and Google will never tell you the reason because those are bots which take action while reviewing the apps.
Dear ‘Niotron Block Based App Developer Friends’, my Google Play Dev Account suspended for 7 months due to ignorance of these things. I don’t want anybody face such bad times. Block based developers don’t understand code level things, they never try to learn more about permissions, extensions hence they don’t check what are they going to do, being innocent they are treated as criminal just because app contains irrelevant permissions etc. which they don’t see, they just make blocks, install app and if app is working just upload the app to play store which is not a good practice my firend. Please always check permissions which your app requests before publishing your app on Google Play else not just your app, your whole account will get banned which will not be reinstated. Nobody is there who response to your asks, what is wrong in my app, why my account suspended etc. etc. Once banned will remain banned!! chances of account reinstatement will be 0.00001%, so be careful!!!
Beware of irrelevant permissions in your app, now or after some time google bot may suspend your app.
I have not published the app on Playstore yet. Do you have any solution?
.
For example if you are using image component to just show your app icon on login screen. So you will set picture from your app’s assets. Image component if used include read external storage permission, but actually app is not reading external storage.
I used a vertical arrangement and set image for it, so image is showing without using image component and read external storage permission is removed now, this is how I solved this issue.
Same problem is associated with listview, therefore I used ListPicker instead of listview to get rid of read external storage permission.
You can actually edit your app Manifest using apk editor to remove the permissions you don’t want.
after editing the manifest file, how to recompile it? if there is a tool. please provide the link.