'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>)