Android Question Having trouble with Permissions

Robert Valentino

Well-Known Member
Licensed User
Longtime User
I have two apps I've written and GooglePlay tells me that one of them is not available for my Tablet (wi-fi only tablet) - Much as I have both apps on the tablet using B4A-Bridge and they both work fine.


The two apps GolfScore (GS) and Mystery Doubles (MD)



GolfScore Manifest
GS-Manifest.png


GooglePlay says it uses these three Permissions (I am using GPS in this app)

GS-Permissions.png



MysteryDoubles Manifest
MD-Manifest.png


GooglePlay says it uses these Permissions

MD-Permissions.png


I am using Bluetooth in this App.

Where is the ACCESS_WIFI_STATE, CHANGE_WIFI_STATE, MODIFY_PHONE_STATE, REBOOT, UPDATE_DEVICE_STATS permissions coming from?

MysteryDoubles has these library's difference from GolfScore:

AnimateGifEncorder
BitmapPlus
esClickSound
Serial
StringUtils
RSPopupmenu
TabHostExtras
ToggleLibrary

My mystery doubles program does not need phone access or internet access and does not include the phone library how can I clear up some of these permissions that are really not needed.

Or I guess a better question would be is HOW do I locate what/who is causing these permissions to be included? Is there a way to see what library's are invoking permissions?

ANY Helpful suggestions welcome.

Thanks BobVal
 
Last edited:

stevel05

Expert
Licensed User
Longtime User
Check what's in your actual manifest file, rather than what's in the editor. You'll find it in the Objects folder of your project. And make sure that the AndroidManifest.xml file is not set to read only (unless you've done it deliberately that is).

If the permissions are in the Manifest file, and you're sure you don't need them, you can try removing them with the editor using RemovePermission.
 
Upvote 0

Robert Valentino

Well-Known Member
Licensed User
Longtime User
I added the following lines to my Manifest file

B4X:
RemovePermission(android.permission.ACCESS_WIFI_STATE)
RemovePermission(android.permission.CHANGE_WIFI_STATE)
RemovePermission(android.permission.MODIFY_PHONE_STATE)
RemovePermission(android.permission.REBOOT)
RemovePermission(android.permission.UPDATE_DEVICE_STATS)
RemovePermission(android.permission.UPDATE_DEVICE_STATS)
RemovePermission(android.permission.WRITE_SECURE_SETTINGS)
RemovePermission(android.permission.WRITE_SETTINGS)

This seems to have solved my GooglePlay problem.

NOW my questions is WHAT caused these permissions to be include?
REBOOT
MODIFY_PHONE_STATE
CHANGE_WIFI_STATE
WRITE_SECURE_SETTINGS

After removing all those permissions the App appears to still be working fine but not having tested every point in the App.

Is there a way to find out what library is including each permission and why or what they are using them for?

BobVal
 
Upvote 0

stevel05

Expert
Licensed User
Longtime User
From the libraries you list, I would think the most likely candidate is the toggle library. Add it to a new project and Dim and Initialize (if necessary) the objects you use and see what it puts in the manifest, you may have to actually call some of the methods too.
 
Upvote 0
Top