DavideTr94
Member
Hi everyone,
with the obligation from November 2021 to update the apps on the Play Store with the SDK target 30, I followed this guide ( https://www.b4x.com/android/forum/t...cess-internal-external-storage-sdk-30.130411/ ) to make the apps compatible with the new versions of Android as regards access to the memory.
Everything works fine but one of these apps was rejected by the Play Store because according to them access to the memory was not necessary and they recommend using the Media Store API.
We have corrected the app by readjusting the various functions and we have completely eliminated all traces inherent to the "MANAGE_EXTERNAL_STORAGE" permission, nevertheless every version we publish is rejected because they insinuate that we must remove this permission, which has actually already been removed!
We no longer know where to turn, while removing all traces, the update we send does not pass, always for the same reason: does someone kindly know how we can solve it?
I attach the Manifest of the application, maybe we are missing something, thank you very much!
with the obligation from November 2021 to update the apps on the Play Store with the SDK target 30, I followed this guide ( https://www.b4x.com/android/forum/t...cess-internal-external-storage-sdk-30.130411/ ) to make the apps compatible with the new versions of Android as regards access to the memory.
Everything works fine but one of these apps was rejected by the Play Store because according to them access to the memory was not necessary and they recommend using the Media Store API.
We have corrected the app by readjusting the various functions and we have completely eliminated all traces inherent to the "MANAGE_EXTERNAL_STORAGE" permission, nevertheless every version we publish is rejected because they insinuate that we must remove this permission, which has actually already been removed!
We no longer know where to turn, while removing all traces, the update we send does not pass, always for the same reason: does someone kindly know how we can solve it?
I attach the Manifest of the application, maybe we are missing something, thank you very much!
Manifest:
'This code will be applied to the manifest file during compilation.
'You do not need to modify it in most cases.
'See this link for for more information: https://www.b4x.com/forum/showthread.php?p=78136
AddManifestText(
<uses-sdk android:minSdkVersion="25" android:targetSdkVersion="30"/>
<supports-screens android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:anyDensity="true"/>)
SetApplicationAttribute(android:icon, "@drawable/icon")
SetApplicationAttribute(android:label, "$LABEL$")
SetApplicationAttribute(android:largeHeap,"true")
SetApplicationAttribute(android:requestLegacyExternalStorage, true)
SetServiceAttribute(StepCounterServices, android:foregroundServiceType, "location")
'End of default text.
'===== Supporto Notch =====
SetApplicationAttribute(android:theme, "@style/CustomTheme")
CreateResource(values, theme.xml,
<resources>
<style name="CustomTheme" parent="@android:style/Theme.Holo.Light">
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
</style>
</resources>)
'===== Imposta Launcher =====
AddActivityText(main, <intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>)
'===== Permessi =====
AddPermission(android.permission.USE_BIOMETRIC)
AddPermission("android.permission.ACCESS_NETWORK_STATE")
AddPermission("android.permission.ACCESS_LOCATION")
AddPermission("android.permission.ACCESS_GPS")
AddPermission("android.permission.ACCESS_ASSISTED_GPS")
AddPermission("android.permission.ACCESS_CELL_ID")
AddPermission("android.permission.ACCESS_COARSE_LOCATION")
AddPermission("android.permission.ACCESS_CHECKIN_PROPERTIES")
AddPermission("android.permission.ACCESS_LOCATION_EXTRA_COMMANDS")
AddPermission("android.permission.ACCESS_FINE_LOCATION")
AddPermission("android.permission.ACCESS_WIFI_STATE")
AddPermission("android.permission.BLUETOOTH_ADMIN")
AddPermission("android.permission.BLUETOOTH")
AddPermission("android.permission.BOOT_COMPLETED")
AddPermission("android.permission.CALL_PHONE")
AddPermission("android.permission.CALL_PRIVILEGED")
AddPermission("android.permission.CAMERA")
AddPermission("android.permission.CHANGE_WIFI_STATE")
AddPermission("android.permission.FLASHLIGHT")
AddPermission("android.permission_group.HARDWARE_CONTROLS")
AddPermission("android.permission.HARDWARE_TEST")
AddPermission("android.permission.INTERNET")
AddPermission("android.permission.MODIFY_PHONE_STATE")
AddPermission("android.permission.READ_PHONE_STATE")
AddPermission("android.permission.RECEIVE_BOOT_COMPLETED")
AddPermission("android.permission.SET_WALLPAPER")
AddPermission("android.permission.UPDATE_DEVICE_STATS")
AddPermission("android.permission.WAKE_LOCK")
AddPermission("android.permission.WRITE_SETTINGS")
AddPermission("android.permission.WRITE_SECURE_SETTINGS")
AddPermission("android.permission.REBOOT")
AddPermission("android.permission.NFC")
AddPermission("android.permission.CLEAR_APP_CACHE")
AddPermission("android.permission.READ_CONTACTS")
AddPermission("android.permission.RUN_INSTRUMENTATION")
AddPermission("android.permission.VIBRATE")
AddPermission("android.permission.CHANGE_NETWORK_STATE")
AddPermission("android.permission.ACCESS_COARSE_UPDATES")
AddPermission("android.permission.SET_WALLPAPER_HINTS")
AddPermission("android.permission.GET_ACCOUNTS")
AddPermission("android.permission.REQUEST_INSTALL_PACKAGES")
AddPermission("android.permission.BIND_DEVICE_ADMIN")
AddPermission("android.permission.EXPAND_STATUS_BAR")
AddPermission("android.permission.INTERACT_ACROSS_USERS_FULL")
AddPermission("android.permission.RECORD_AUDIO")
AddPermission("android.permission.REQUEST_DELETE_PACKAGES")
AddPermission(android.permission.GET_TASKS)
AddPermission(android.permission.DISABLE_KEYGUARD)
AddPermission(android.permission.ACCESS_BACKGROUND_LOCATION)
AddPermission(android.permission.ACCESS_CHECKIN_PROPERTIES)
AddPermission(android.permission.ACTIVITY_RECOGNITION)
AddPermission(android.permission.QUERY_ALL_PACKAGES)
AddManifestText(<uses-feature android:name="android.hardware.location.gps"/>)
'===== Autorizzazioni Rimosse =====
RemovePermission("android.permission.RECEIVE_SMS")
RemovePermission("android.permission.READ_SMS")
RemovePermission("android.permission.SEND_SMS")
RemovePermission("android.permission.WRITE_SMS")
RemovePermission("android.permission.RECEIVE_MMS")
RemovePermission("android.permission.READ_CALL_LOG")
RemovePermission("android.permission.PROCESS_OUTGOING_CALLS")
RemovePermission("android.permission.RECEIVE_WAP_PUSH")
RemovePermission("android.permission.MANAGE_EXTERNAL_STORAGE")
'===== Informazioni Attività =====
SetActivityAttribute(Main, android:screenOrientation, "portrait")
SetActivityAttribute(Welcome, android:screenOrientation, "portrait")
SetActivityAttribute(GUIDownloader, android:screenOrientation, "portrait")
SetActivityAttribute(InitialConfig1, android:screenOrientation, "portrait")
SetActivityAttribute(InitialConfig2, android:screenOrientation, "portrait")
SetActivityAttribute(InitialConfig3, android:screenOrientation, "portrait")
SetActivityAttribute(InitialConfig4, android:screenOrientation, "portrait")
SetActivityAttribute(InitialConfig5, android:screenOrientation, "portrait")
SetActivityAttribute(InitialConfig6, android:screenOrientation, "portrait")
SetActivityAttribute(InitialConfig7, android:screenOrientation, "portrait")
SetActivityAttribute(InitialConfig8, android:screenOrientation, "portrait")
SetActivityAttribute(InitialConfig9, android:screenOrientation, "portrait")
SetActivityAttribute(InitialConfig10, android:screenOrientation, "portrait")
SetActivityAttribute(InitialConfig11, android:screenOrientation, "portrait")
SetActivityAttribute(InitialLanguageSelector, android:screenOrientation, "portrait")
SetActivityAttribute(Home, android:screenOrientation, "portrait")
SetActivityAttribute(LockScreen, android:screenOrientation, "portrait")
SetActivityAttribute(PhoneDialer, android:screenOrientation, "portrait")
SetActivityAttribute(FinishConfig, android:screenOrientation, "portrait")
SetActivityAttribute(UpdateInfoForm, android:screenOrientation, "portrait")
SetActivityAttribute(RecoveryMode, android:screenOrientation, "portrait")
SetActivityAttribute(BootFailActivity, android:screenOrientation, "portrait")
SetActivityAttribute(OperatorAlertActivity, android:screenOrientation, "portrait")
SetActivityAttribute(PhoneCallerID, android:screenOrientation, "portrait")
SetActivityAttribute(RestoreCodeActivity, android:screenOrientation, "portrait")
SetActivityAttribute(MemoryAlertActivity, android:screenOrientation, "portrait")
SetActivityAttribute(BugReportActivity, android:screenOrientation, "portrait")
'SetActivityAttribute(InAppControlCenter, android:theme, "@android:style/Theme.Translucent")
SetActivityAttribute(AppManagerInstallerActivity, android:screenOrientation, "portrait")
SetActivityAttribute(AdaptiveBoxActivity, android:screenOrientation, "portrait")
SetActivityAttribute(EmergencyDialerActivity, android:screenOrientation, "portrait")
SetActivityAttribute(RebootActivity, android:screenOrientation, "portrait")
SetActivityAttribute(AuthorizationActivity, android:screenOrientation, "portrait")
SetActivityAttribute(MaliciousAppsActivity, android:screenOrientation, "portrait")
SetActivityAttribute(TutorialActivity, android:screenOrientation, "portrait")
SetActivityAttribute(UpdateDownloaderActivity, android:screenOrientation, "portrait")
SetActivityAttribute(LangDownloaderActivity, android:screenOrientation, "portrait")
SetActivityAttribute(ThermalAlertActivity, android:screenOrientation, "portrait")
SetActivityAttribute(SubscriptionAlertActivity, android:screenOrientation, "portrait")
SetActivityAttribute(SubscriptionBuyActivity, android:screenOrientation, "portrait")
SetActivityAttribute(UserContractsActivity, android:screenOrientation, "portrait")
SetActivityAttribute(InitialSubscriptionSelectorActivity, android:screenOrientation, "portrait")
SetActivityAttribute(SubscriptionManagerActivity, android:screenOrientation, "portrait")
SetActivityAttribute(SubscriptionLostActivity, android:screenOrientation, "portrait")
SetActivityAttribute(MinimumRequirementsActivity, android:screenOrientation, "portrait")
SetActivityAttribute(SubscriptionDoubleAlertActivity, android:screenOrientation, "portrait")
SetActivityAttribute(AccountCheckerActivity, android:screenOrientation, "portrait")
SetActivityAttribute(SettingsCloudBackupActivity, android:screenOrientation, "portrait")
SetActivityAttribute(SetDefaultLauncherActivity, android:screenOrientation, "portrait")
SetActivityAttribute(DownloadManagerActivity, android:screenOrientation, "portrait")
SetActivityAttribute(GraphicDownloadActivity, android:screenOrientation, "portrait")
SetActivityAttribute(CloudCountdownActivity, android:screenOrientation, "portrait")
SetActivityAttribute(AlwaysOnDisplay_InitialConfig, android:screenOrientation, "portrait")
SetActivityAttribute(ChangeTextSizeActivity, android:screenOrientation, "portrait")
SetActivityAttribute(UpdateAlertActivity, android:screenOrientation, "portrait")
SetActivityAttribute(ConfigTypeSelectorActivity, android:screenOrientation, "portrait")
SetActivityAttribute(AppsManagerUninstallActivity, android:screenOrientation, "portrait")
SetActivityAttribute(RecoveryModeActivity, android:screenOrientation, "portrait")
'===== Singole Istanze =====
'SetActivityAttribute(Home, android:launchMode, "singleInstance")
'SetActivityAttribute(LockScreen, android:launchMode, "singleInstance")
SetActivityAttribute(Home, android:excludeFromRecents, "true")
SetActivityAttribute(LockScreen, android:excludeFromRecents, "true")
'===== Processo Notifiche =====
AddApplicationText(
<service android:name="anywheresoftware.b4a.objects.NotificationListenerWrapper"
android:label="Professional UI"
android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE">
<intent-filter>
<action android:name="android.service.notification.NotificationListenerService" />
</intent-filter>
</service>)
'===== Amministratore =====
AddApplicationText(<receiver android:name="anywheresoftware.b4a.objects.AdminManager$AdminReceiver"
android:permission="android.permission.BIND_DEVICE_ADMIN">
<meta-data android:name="android.app.device_admin"
android:resource="@xml/device_admin" />
<intent-filter>
<action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
</intent-filter>
</receiver>)
CreateResource(xml, device_admin.xml,
<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
<uses-policies>
<limit-password />
<reset-password />
<force-lock />
</uses-policies>
</device-admin>
)
'===== Permessi di Installazioni Esterne =====
AddApplicationText(
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="$PACKAGE$.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths"/>
</provider>
)
CreateResource(xml, provider_paths,
<external-files-path name="name" path="" />
)
'===== Gestione Abbonamenti =====
CreateResourceFromFile(Macro, GooglePlayBilling.GooglePlayBilling)
AddPermission("com.android.vending.BILLING")
'===== Gestione Tema di Sistema =====
SetApplicationAttribute(android:theme, "@style/Custom")
CreateResource(values-v20, theme.xml,
<resources>
<style name="Custom" parent="@android:style/Theme.Material.Light.NoActionBar">
<item name="android:windowTranslucentNavigation">false</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:forceDarkAllowed">false</item>
</style>
</resources>
)
'===== Gestione Dialer =====
'AddReceiverText(LockScreenCheck, <intent-filter>
' <action android:name="android.intent.action.NEW_OUTGOING_CALL" />
' <category android:name="android.intent.category.DEFAULT" />
'</intent-filter>)