├── .gitignore ├── AndroidManifest.template.xml ├── CHANGELOG.md ├── Example ├── AndroidManifest.template.xml ├── HeaderFooter.ICO ├── HeaderFooterApplication.deployproj ├── HeaderFooterApplication.dpr ├── HeaderFooterApplication.dproj ├── HeaderFooterApplication.res ├── HeaderFooterTemplate.fmx └── HeaderFooterTemplate.pas ├── LICENSE ├── README.md ├── TAndroidBroadcastReceiver.groupproj ├── batBroadcastReceiver.pas ├── delphiAndroidBroadcastReceiver.dpk ├── delphiAndroidBroadcastReceiver.dproj └── delphiAndroidBroadcastReceiver.res /.gitignore: -------------------------------------------------------------------------------- 1 | # File created using '.gitignore Generator' for Visual Studio Code: https://bit.ly/vscode-gig 2 | # Created by https://www.toptal.com/developers/gitignore/api/visualstudiocode,macos,delphi 3 | # Edit at https://www.toptal.com/developers/gitignore?templates=visualstudiocode,macos,delphi 4 | 5 | ### Delphi ### 6 | # Uncomment these types if you want even more clean repository. But be careful. 7 | # It can make harm to an existing project source. Read explanations below. 8 | # 9 | # Resource files are binaries containing manifest, project icon and version info. 10 | # They can not be viewed as text or compared by diff-tools. Consider replacing them with .rc files. 11 | #*.res 12 | # Type library file (binary). In old Delphi versions it should be stored. 13 | # Since Delphi 2009 it is produced from .ridl file and can safely be ignored. 14 | #*.tlb 15 | # Diagram Portfolio file. Used by the diagram editor up to Delphi 7. 16 | # Uncomment this if you are not using diagrams or use newer Delphi version. 17 | #*.ddp 18 | # Visual LiveBindings file. Added in Delphi XE2. 19 | # Uncomment this if you are not using LiveBindings Designer. 20 | #*.vlb 21 | # Deployment Manager configuration file for your project. Added in Delphi XE2. 22 | # Uncomment this if it is not mobile development and you do not use remote debug feature. 23 | #*.deployproj 24 | # C++ object files produced when C/C++ Output file generation is configured. 25 | # Uncomment this if you are not using external objects (zlib library for example). 26 | #*.obj 27 | 28 | # Delphi compiler-generated binaries (safe to delete) 29 | *.exe 30 | *.dll 31 | *.bpl 32 | *.bpi 33 | *.dcp 34 | *.so 35 | *.apk 36 | *.drc 37 | *.map 38 | *.dres 39 | *.rsm 40 | *.tds 41 | *.dcu 42 | *.lib 43 | *.a 44 | *.o 45 | *.ocx 46 | 47 | # Delphi autogenerated files (duplicated info) 48 | *.cfg 49 | *.hpp 50 | *Resource.rc 51 | 52 | # Delphi local files (user-specific info) 53 | *.local 54 | *.identcache 55 | *.projdata 56 | *.tvsconfig 57 | *.dsk 58 | 59 | # Delphi history and backups 60 | __history/ 61 | __recovery/ 62 | *.~* 63 | 64 | #Android and Windows compiled files 65 | Android/debug/ 66 | Android/release/ 67 | Win32/ 68 | Win64/ 69 | 70 | # Castalia statistics file (since XE7 Castalia is distributed with Delphi) 71 | *.stat 72 | 73 | # Boss dependency manager vendor folder https://github.com/HashLoad/boss 74 | modules/ 75 | 76 | ### macOS ### 77 | # General 78 | .DS_Store 79 | .AppleDouble 80 | .LSOverride 81 | 82 | # Icon must end with two \r 83 | Icon 84 | 85 | 86 | # Thumbnails 87 | ._* 88 | 89 | # Files that might appear in the root of a volume 90 | .DocumentRevisions-V100 91 | .fseventsd 92 | .Spotlight-V100 93 | .TemporaryItems 94 | .Trashes 95 | .VolumeIcon.icns 96 | .com.apple.timemachine.donotpresent 97 | 98 | # Directories potentially created on remote AFP share 99 | .AppleDB 100 | .AppleDesktop 101 | Network Trash Folder 102 | Temporary Items 103 | .apdisk 104 | 105 | ### macOS Patch ### 106 | # iCloud generated files 107 | *.icloud 108 | 109 | ### VisualStudioCode ### 110 | .vscode/* 111 | !.vscode/settings.json 112 | !.vscode/tasks.json 113 | !.vscode/launch.json 114 | !.vscode/extensions.json 115 | !.vscode/*.code-snippets 116 | 117 | # Local History for Visual Studio Code 118 | .history/ 119 | 120 | # Built Visual Studio Code Extensions 121 | *.vsix 122 | 123 | ### VisualStudioCode Patch ### 124 | # Ignore all local history of files 125 | .history 126 | .ionide 127 | 128 | # End of https://www.toptal.com/developers/gitignore/api/visualstudiocode,macos,delphi 129 | 130 | # Custom rules (everything added below won't be overriden by 'Generate .gitignore File' if you use 'Update' option) 131 | 132 | -------------------------------------------------------------------------------- /AndroidManifest.template.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | <%uses-permission%> 10 | 11 | 12 | <%queries-child-elements%> 13 | 14 | 25 | <%provider%> 26 | <%application-meta-data%> 27 | <%uses-libraries%> 28 | <%services%> 29 | 31 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | <%activity%> 47 | <%receivers%> 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | 2 | ## 1.0.0 3 | 4 | * Initial release. 5 | -------------------------------------------------------------------------------- /Example/AndroidManifest.template.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | <%uses-permission%> 10 | 11 | 12 | <%queries-child-elements%> 13 | 14 | 25 | <%provider%> 26 | <%application-meta-data%> 27 | <%uses-libraries%> 28 | <%services%> 29 | 31 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | <%activity%> 47 | <%receivers%> 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /Example/HeaderFooter.ICO: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nilcemar/DelphiAndroidBroadcastReceiver/ab9bb5937b3a313da83e39c86cdec1cf0a1fb285/Example/HeaderFooter.ICO -------------------------------------------------------------------------------- /Example/HeaderFooterApplication.deployproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 12 5 | 6 | 7 | 510221122151 8 | 510221122151 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | HeaderFooterApplication\res\drawable-large\ 17 | splash_image.png 18 | Android_SplashImage640 19 | 1 20 | 21 | 22 | True 23 | 24 | 25 | HeaderFooterApplication\res\values\ 26 | strings.xml 27 | Android_Strings 28 | 1 29 | 30 | 31 | True 32 | 33 | 34 | HeaderFooterApplication\res\drawable-xhdpi\ 35 | ic_notification.png 36 | Android_NotificationIcon48 37 | 1 38 | 39 | 40 | True 41 | 42 | 43 | HeaderFooterApplication\res\values-v21\ 44 | styles.xml 45 | AndroidSplashStylesV21 46 | 1 47 | 48 | 49 | True 50 | 51 | 52 | HeaderFooterApplication\library\lib\armeabi-v7a\ 53 | libHeaderFooterApplication.so 54 | ProjectOutput 55 | 1 56 | 57 | 58 | True 59 | True 60 | 61 | 62 | HeaderFooterApplication\res\values\ 63 | colors.xml 64 | Android_Colors 65 | 1 66 | 67 | 68 | True 69 | 70 | 71 | HeaderFooterApplication\res\drawable\ 72 | splash_image_def.xml 73 | AndroidSplashImageDef 74 | 1 75 | 76 | 77 | True 78 | 79 | 80 | HeaderFooterApplication\classes\ 81 | HeaderFooterApplication.classes 82 | AndroidClasses 83 | 64 84 | 85 | 86 | True 87 | 88 | 89 | HeaderFooterApplication\library\lib\armeabi\ 90 | libHeaderFooterApplication.so 91 | AndroidLibnativeArmeabiFile 92 | 1 93 | 94 | 95 | True 96 | 97 | 98 | HeaderFooterApplication\library\lib\mips\ 99 | libHeaderFooterApplication.so 100 | AndroidLibnativeMipsFile 101 | 1 102 | 103 | 104 | True 105 | 106 | 107 | HeaderFooterApplication\res\drawable-mdpi\ 108 | ic_notification.png 109 | Android_NotificationIcon24 110 | 1 111 | 112 | 113 | True 114 | 115 | 116 | HeaderFooterApplication\res\drawable-small\ 117 | splash_image.png 118 | Android_SplashImage426 119 | 1 120 | 121 | 122 | True 123 | 124 | 125 | HeaderFooterApplication\library\lib\armeabi-v7a\ 126 | gdbserver 127 | AndroidGDBServer 128 | 1 129 | 130 | 131 | True 132 | 133 | 134 | HeaderFooterApplication\res\drawable-ldpi\ 135 | ic_launcher.png 136 | Android_LauncherIcon36 137 | 1 138 | 139 | 140 | True 141 | 142 | 143 | HeaderFooterApplication\res\drawable-hdpi\ 144 | ic_launcher.png 145 | Android_LauncherIcon72 146 | 1 147 | 148 | 149 | True 150 | 151 | 152 | HeaderFooterApplication\res\drawable-normal\ 153 | splash_image.png 154 | Android_SplashImage470 155 | 1 156 | 157 | 158 | True 159 | 160 | 161 | HeaderFooterApplication\res\drawable-hdpi\ 162 | ic_notification.png 163 | Android_NotificationIcon36 164 | 1 165 | 166 | 167 | True 168 | 169 | 170 | HeaderFooterApplication\res\drawable-xxhdpi\ 171 | ic_notification.png 172 | Android_NotificationIcon72 173 | 1 174 | 175 | 176 | True 177 | 178 | 179 | HeaderFooterApplication\res\drawable-mdpi\ 180 | ic_launcher.png 181 | Android_LauncherIcon48 182 | 1 183 | 184 | 185 | True 186 | 187 | 188 | HeaderFooterApplication\res\drawable-xxhdpi\ 189 | ic_launcher.png 190 | Android_LauncherIcon144 191 | 1 192 | 193 | 194 | True 195 | 196 | 197 | HeaderFooterApplication\res\drawable-xxxhdpi\ 198 | ic_launcher.png 199 | Android_LauncherIcon192 200 | 1 201 | 202 | 203 | True 204 | 205 | 206 | HeaderFooterApplication\res\drawable-xhdpi\ 207 | ic_launcher.png 208 | Android_LauncherIcon96 209 | 1 210 | 211 | 212 | True 213 | 214 | 215 | HeaderFooterApplication\res\drawable-xlarge\ 216 | splash_image.png 217 | Android_SplashImage960 218 | 1 219 | 220 | 221 | True 222 | 223 | 224 | HeaderFooterApplication\ 225 | AndroidManifest.xml 226 | ProjectAndroidManifest 227 | 1 228 | 229 | 230 | True 231 | 232 | 233 | HeaderFooterApplication\res\values\ 234 | styles.xml 235 | AndroidSplashStyles 236 | 1 237 | 238 | 239 | True 240 | 241 | 242 | HeaderFooterApplication\res\drawable-xxxhdpi\ 243 | ic_notification.png 244 | Android_NotificationIcon96 245 | 1 246 | 247 | 248 | True 249 | 250 | 251 | 252 | -------------------------------------------------------------------------------- /Example/HeaderFooterApplication.dpr: -------------------------------------------------------------------------------- 1 | program HeaderFooterApplication; 2 | 3 | uses 4 | System.StartUpCopy, 5 | FMX.Forms, 6 | HeaderFooterTemplate in 'HeaderFooterTemplate.pas' {HeaderFooterForm}; 7 | 8 | {$R *.res} 9 | 10 | begin 11 | Application.Initialize; 12 | Application.CreateForm(THeaderFooterForm, HeaderFooterForm); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /Example/HeaderFooterApplication.dproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | {A1E00957-BA39-49E3-9093-73504C30DB51} 4 | 19.5 5 | FMX 6 | HeaderFooterApplication.dpr 7 | True 8 | Debug 9 | Android 10 | 32787 11 | Application 12 | 13 | 14 | true 15 | 16 | 17 | true 18 | Base 19 | true 20 | 21 | 22 | true 23 | Base 24 | true 25 | 26 | 27 | true 28 | Base 29 | true 30 | 31 | 32 | true 33 | Base 34 | true 35 | 36 | 37 | true 38 | Base 39 | true 40 | 41 | 42 | true 43 | Base 44 | true 45 | 46 | 47 | true 48 | Base 49 | true 50 | 51 | 52 | true 53 | Cfg_1 54 | true 55 | true 56 | 57 | 58 | true 59 | Cfg_1 60 | true 61 | true 62 | 63 | 64 | true 65 | Cfg_1 66 | true 67 | true 68 | 69 | 70 | true 71 | Cfg_1 72 | true 73 | true 74 | 75 | 76 | true 77 | Cfg_1 78 | true 79 | true 80 | 81 | 82 | true 83 | Base 84 | true 85 | 86 | 87 | true 88 | Cfg_2 89 | true 90 | true 91 | 92 | 93 | true 94 | Cfg_2 95 | true 96 | true 97 | 98 | 99 | HeaderFooterApplication 100 | $(BDS)\bin\default_app.manifest 101 | System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace) 102 | $(BDS)\bin\delphi_PROJECTICON.ico 103 | .\$(Platform)\$(Config) 104 | .\$(Platform)\$(Config) 105 | true 106 | true 107 | true 108 | true 109 | true 110 | true 111 | true 112 | $(BDS)\bin\delphi_PROJECTICNS.icns 113 | true 114 | true 115 | true 116 | false 117 | false 118 | false 119 | false 120 | false 121 | 122 | 123 | center 124 | disabled 125 | $(BDS)\bin\Artwork\Android\FM_SplashImage_426x320.png 126 | $(BDS)\bin\Artwork\Android\FM_SplashImage_960x720.png 127 | $(BDS)\bin\Artwork\Android\FM_SplashImage_470x320.png 128 | annotation-1.2.0.dex.jar;asynclayoutinflater-1.0.0.dex.jar;billing-4.0.0.dex.jar;browser-1.0.0.dex.jar;cloud-messaging.dex.jar;collection-1.0.0.dex.jar;coordinatorlayout-1.0.0.dex.jar;core-1.5.0-rc02.dex.jar;core-common-2.0.1.dex.jar;core-runtime-2.0.1.dex.jar;cursoradapter-1.0.0.dex.jar;customview-1.0.0.dex.jar;documentfile-1.0.0.dex.jar;drawerlayout-1.0.0.dex.jar;firebase-annotations-16.0.0.dex.jar;firebase-common-20.0.0.dex.jar;firebase-components-17.0.0.dex.jar;firebase-datatransport-18.0.0.dex.jar;firebase-encoders-17.0.0.dex.jar;firebase-encoders-json-18.0.0.dex.jar;firebase-iid-interop-17.1.0.dex.jar;firebase-installations-17.0.0.dex.jar;firebase-installations-interop-17.0.0.dex.jar;firebase-measurement-connector-19.0.0.dex.jar;firebase-messaging-22.0.0.dex.jar;fmx.dex.jar;fragment-1.0.0.dex.jar;google-play-licensing.dex.jar;interpolator-1.0.0.dex.jar;javax.inject-1.dex.jar;legacy-support-core-ui-1.0.0.dex.jar;legacy-support-core-utils-1.0.0.dex.jar;lifecycle-common-2.0.0.dex.jar;lifecycle-livedata-2.0.0.dex.jar;lifecycle-livedata-core-2.0.0.dex.jar;lifecycle-runtime-2.0.0.dex.jar;lifecycle-service-2.0.0.dex.jar;lifecycle-viewmodel-2.0.0.dex.jar;listenablefuture-1.0.dex.jar;loader-1.0.0.dex.jar;localbroadcastmanager-1.0.0.dex.jar;play-services-ads-20.1.0.dex.jar;play-services-ads-base-20.1.0.dex.jar;play-services-ads-identifier-17.0.0.dex.jar;play-services-ads-lite-20.1.0.dex.jar;play-services-base-17.5.0.dex.jar;play-services-basement-17.6.0.dex.jar;play-services-cloud-messaging-16.0.0.dex.jar;play-services-drive-17.0.0.dex.jar;play-services-games-21.0.0.dex.jar;play-services-location-18.0.0.dex.jar;play-services-maps-17.0.1.dex.jar;play-services-measurement-base-18.0.0.dex.jar;play-services-measurement-sdk-api-18.0.0.dex.jar;play-services-places-placereport-17.0.0.dex.jar;play-services-stats-17.0.0.dex.jar;play-services-tasks-17.2.0.dex.jar;print-1.0.0.dex.jar;room-common-2.1.0.dex.jar;room-runtime-2.1.0.dex.jar;slidingpanelayout-1.0.0.dex.jar;sqlite-2.0.1.dex.jar;sqlite-framework-2.0.1.dex.jar;swiperefreshlayout-1.0.0.dex.jar;transport-api-3.0.0.dex.jar;transport-backend-cct-3.0.0.dex.jar;transport-runtime-3.0.0.dex.jar;user-messaging-platform-1.0.0.dex.jar;versionedparcelable-1.1.1.dex.jar;viewpager-1.0.0.dex.jar;work-runtime-2.1.0.dex.jar 129 | $(BDS)\bin\Artwork\Android\FM_SplashImage_640x480.png 130 | 1 131 | $(BDS)\bin\Artwork\Android\FM_LauncherIcon_144x144.png 132 | $(BDS)\bin\Artwork\Android\FM_LauncherIcon_36x36.png 133 | true 134 | $(BDS)\bin\Artwork\Android\FM_LauncherIcon_72x72.png 135 | $(BDS)\bin\Artwork\Android\FM_LauncherIcon_96x96.png 136 | $(BDS)\bin\Artwork\Android\FM_LauncherIcon_48x48.png 137 | package=com.embarcadero.$(MSBuildProjectName);label=$(MSBuildProjectName);versionCode=1;versionName=1.0.0;persistent=False;restoreAnyVersion=False;installLocation=preferExternal;largeHeap=False;theme=TitleBar;hardwareAccelerated=true;apiKey= 138 | Debug 139 | $(BDS)\bin\Artwork\Android\FM_NotificationIcon_24x24.png 140 | $(BDS)\bin\Artwork\Android\FM_NotificationIcon_36x36.png 141 | $(BDS)\bin\Artwork\Android\FM_NotificationIcon_48x48.png 142 | $(BDS)\bin\Artwork\Android\FM_NotificationIcon_72x72.png 143 | $(BDS)\bin\Artwork\Android\FM_NotificationIcon_96x96.png 144 | $(BDS)\bin\Artwork\Android\FM_LauncherIcon_192x192.png 145 | 146 | 147 | package=com.embarcadero.$(MSBuildProjectName);label=$(MSBuildProjectName);versionCode=1;versionName=1.0.0;persistent=False;restoreAnyVersion=False;installLocation=preferExternal;largeHeap=False;theme=TitleBar;hardwareAccelerated=true;apiKey= 148 | Debug 149 | true 150 | true 151 | Base 152 | true 153 | center 154 | disabled 155 | $(BDS)\bin\Artwork\Android\FM_SplashImage_426x320.png 156 | $(BDS)\bin\Artwork\Android\FM_SplashImage_960x720.png 157 | $(BDS)\bin\Artwork\Android\FM_SplashImage_470x320.png 158 | annotation-1.2.0.dex.jar;asynclayoutinflater-1.0.0.dex.jar;billing-4.0.0.dex.jar;browser-1.0.0.dex.jar;cloud-messaging.dex.jar;collection-1.0.0.dex.jar;coordinatorlayout-1.0.0.dex.jar;core-1.5.0-rc02.dex.jar;core-common-2.0.1.dex.jar;core-runtime-2.0.1.dex.jar;cursoradapter-1.0.0.dex.jar;customview-1.0.0.dex.jar;documentfile-1.0.0.dex.jar;drawerlayout-1.0.0.dex.jar;firebase-annotations-16.0.0.dex.jar;firebase-common-20.0.0.dex.jar;firebase-components-17.0.0.dex.jar;firebase-datatransport-18.0.0.dex.jar;firebase-encoders-17.0.0.dex.jar;firebase-encoders-json-18.0.0.dex.jar;firebase-iid-interop-17.1.0.dex.jar;firebase-installations-17.0.0.dex.jar;firebase-installations-interop-17.0.0.dex.jar;firebase-measurement-connector-19.0.0.dex.jar;firebase-messaging-22.0.0.dex.jar;fmx.dex.jar;fragment-1.0.0.dex.jar;google-play-licensing.dex.jar;interpolator-1.0.0.dex.jar;javax.inject-1.dex.jar;legacy-support-core-ui-1.0.0.dex.jar;legacy-support-core-utils-1.0.0.dex.jar;lifecycle-common-2.0.0.dex.jar;lifecycle-livedata-2.0.0.dex.jar;lifecycle-livedata-core-2.0.0.dex.jar;lifecycle-runtime-2.0.0.dex.jar;lifecycle-service-2.0.0.dex.jar;lifecycle-viewmodel-2.0.0.dex.jar;listenablefuture-1.0.dex.jar;loader-1.0.0.dex.jar;localbroadcastmanager-1.0.0.dex.jar;play-services-ads-20.1.0.dex.jar;play-services-ads-base-20.1.0.dex.jar;play-services-ads-identifier-17.0.0.dex.jar;play-services-ads-lite-20.1.0.dex.jar;play-services-base-17.5.0.dex.jar;play-services-basement-17.6.0.dex.jar;play-services-cloud-messaging-16.0.0.dex.jar;play-services-drive-17.0.0.dex.jar;play-services-games-21.0.0.dex.jar;play-services-location-18.0.0.dex.jar;play-services-maps-17.0.1.dex.jar;play-services-measurement-base-18.0.0.dex.jar;play-services-measurement-sdk-api-18.0.0.dex.jar;play-services-places-placereport-17.0.0.dex.jar;play-services-stats-17.0.0.dex.jar;play-services-tasks-17.2.0.dex.jar;print-1.0.0.dex.jar;room-common-2.1.0.dex.jar;room-runtime-2.1.0.dex.jar;slidingpanelayout-1.0.0.dex.jar;sqlite-2.0.1.dex.jar;sqlite-framework-2.0.1.dex.jar;swiperefreshlayout-1.0.0.dex.jar;transport-api-3.0.0.dex.jar;transport-backend-cct-3.0.0.dex.jar;transport-runtime-3.0.0.dex.jar;user-messaging-platform-1.0.0.dex.jar;versionedparcelable-1.1.1.dex.jar;viewpager-1.0.0.dex.jar;work-runtime-2.1.0.dex.jar 159 | $(BDS)\bin\Artwork\Android\FM_SplashImage_640x480.png 160 | 1 161 | $(BDS)\bin\Artwork\Android\FM_LauncherIcon_144x144.png 162 | $(BDS)\bin\Artwork\Android\FM_LauncherIcon_36x36.png 163 | $(BDS)\bin\Artwork\Android\FM_LauncherIcon_72x72.png 164 | $(BDS)\bin\Artwork\Android\FM_LauncherIcon_96x96.png 165 | $(BDS)\bin\Artwork\Android\FM_LauncherIcon_48x48.png 166 | $(BDS)\bin\Artwork\Android\FM_NotificationIcon_24x24.png 167 | $(BDS)\bin\Artwork\Android\FM_NotificationIcon_36x36.png 168 | $(BDS)\bin\Artwork\Android\FM_NotificationIcon_48x48.png 169 | $(BDS)\bin\Artwork\Android\FM_NotificationIcon_72x72.png 170 | $(BDS)\bin\Artwork\Android\FM_NotificationIcon_96x96.png 171 | $(BDS)\bin\Artwork\Android\FM_LauncherIcon_192x192.png 172 | 173 | 174 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_58x58.png 175 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_768x1004.png 176 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_2048x1536.png 177 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_1536x2048.png 178 | $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_72x72.png 179 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_29x29.png 180 | $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_100x100.png 181 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_1024x748.png 182 | iPhoneAndiPad 183 | $(BDS)\bin\Artwork\iOS\iPad\FM_SettingIcon_29x29.png 184 | true 185 | $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_76x76.png 186 | fmxhrh;DBXSqliteDriver;fmx;rtl;dbrtl;DbxClientDriver;IndySystem;bindcomp;DBXInterBaseDriver;DataSnapClient;DataSnapCommon;DataSnapProviderClient;xmlrtl;DbxCommonDriver;IndyProtocols;bindengine;bindcompdbx;CustomIPTransport;dsnap;fmxase;IndyCore;IndyIPCommon;dbexpress;IndyIPClient;$(DCC_UsePackage);$(DCC_UsePackage);$(DCC_UsePackage) 187 | $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_50x50.png 188 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_120x120.png 189 | $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_80x80.png 190 | $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_40x40.png 191 | $(BDS)\bin\Artwork\iOS\iPad\FM_SettingIcon_58x58.png 192 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_1024x768.png 193 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_40x40.png 194 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_640x1136.png 195 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_640x960.png 196 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_57x57.png 197 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_320x480.png 198 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_60x60.png 199 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_2048x1496.png 200 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_80x80.png 201 | $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_144x144.png 202 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_114x114.png 203 | true 204 | $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_152x152.png 205 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_1536x2008.png 206 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_768x1024.png 207 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_1125x2436.png 208 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_2436x1125.png 209 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_120x120.png 210 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_828x1792.png 211 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_1136x640.png 212 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_1242x2688.png 213 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_1334x750.png 214 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_1792x828.png 215 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_2688x1242.png 216 | $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_167x167.png 217 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_1668x2224.png 218 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_1668x2388.png 219 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_2048x2732.png 220 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_2224x1668.png 221 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_2388x1668.png 222 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_2732x2048.png 223 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_1024x1024.png 224 | $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_180x180.png 225 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_2x.png 226 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImageDark_2x.png 227 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_3x.png 228 | $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImageDark_3x.png 229 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SettingIcon_58x58.png 230 | $(BDS)\bin\Artwork\iOS\iPhone\FM_SettingIcon_87x87.png 231 | $(BDS)\bin\Artwork\iOS\iPhone\FM_NotificationIcon_40x40.png 232 | $(BDS)\bin\Artwork\iOS\iPhone\FM_NotificationIcon_60x60.png 233 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImage_2x.png 234 | $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageDark_2x.png 235 | $(BDS)\bin\Artwork\iOS\iPad\FM_NotificationIcon_40x40.png 236 | 237 | 238 | Debug 239 | true 240 | true 241 | fmxhrh;FireDACSqliteDriver;FireDACDSDriver;DBXSqliteDriver;FireDACPgDriver;fmx;IndySystem;tethering;DataSnapClient;DataSnapServer;DataSnapCommon;DBXInterBaseDriver;DataSnapProviderClient;DbxCommonDriver;dbxcds;fmxFireDAC;DBXOracleDriver;dsnap;IndyIPServer;fmxase;IndyCore;CloudService;IndyIPCommon;FireDACIBDriver;DataSnapFireDAC;FireDACDBXDriver;soapserver;dsnapxml;FireDACInfxDriver;FireDACASADriver;bindcompfmx;FireDACODBCDriver;RESTBackendComponents;rtl;dbrtl;DbxClientDriver;FireDACCommon;bindcomp;xmlrtl;DataSnapNativeClient;ibxpress;IndyProtocols;DBXMySQLDriver;FireDACCommonDriver;bindcompdbx;bindengine;soaprtl;FireDAC;DBXInformixDriver;FireDACMSSQLDriver;DataSnapServerMidas;DBXFirebirdDriver;inet;fmxobj;FireDACMySQLDriver;soapmidas;DBXSybaseASADriver;FireDACOracleDriver;fmxdae;RESTComponents;DataSnapIndy10ServerTransport;dbexpress;IndyIPClient;$(DCC_UsePackage);$(DCC_UsePackage);$(DCC_UsePackage) 242 | 243 | 244 | true 245 | Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) 246 | true 247 | $(BDS)\bin\default_app.manifest 248 | 1033 249 | CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);FileDescription=$(MSBuildProjectName);ProductName=$(MSBuildProjectName) 250 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png 251 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png 252 | $(BDS)\bin\Artwork\Windows\UWP\cppreg_UwpDefault_44.png 253 | $(BDS)\bin\Artwork\Windows\UWP\cppreg_UwpDefault_150.png 254 | 255 | 256 | true 257 | true 258 | $(BDS)\bin\default_app.manifest 259 | Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace) 260 | CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);FileDescription=$(MSBuildProjectName);ProductName=$(MSBuildProjectName) 261 | 1033 262 | fmxhrh;FireDACSqliteDriver;FireDACDSDriver;DBXSqliteDriver;FireDACPgDriver;fmx;IndySystem;TeeDB;tethering;vclib;DataSnapClient;DataSnapServer;DataSnapCommon;DBXInterBaseDriver;DataSnapProviderClient;DBXSybaseASEDriver;DbxCommonDriver;vclimg;dbxcds;DatasnapConnectorsFreePascal;MetropolisUILiveTile;vcldb;vcldsnap;fmxFireDAC;DBXDb2Driver;DBXOracleDriver;vclribbon;dsnap;IndyIPServer;fmxase;vcl;IndyCore;CloudService;DBXMSSQLDriver;IndyIPCommon;FireDACIBDriver;DataSnapFireDAC;FireDACDBXDriver;soapserver;dsnapxml;FireDACInfxDriver;FireDACDb2Driver;adortl;FireDACASADriver;bindcompfmx;FireDACODBCDriver;RESTBackendComponents;rtl;dbrtl;DbxClientDriver;FireDACCommon;bindcomp;Tee;DBXOdbcDriver;vclFireDAC;xmlrtl;DataSnapNativeClient;ibxpress;IndyProtocols;DBXMySQLDriver;FireDACCommonDriver;bindcompdbx;bindengine;vclactnband;soaprtl;TeeUI;bindcompvcl;vclie;FireDACADSDriver;vcltouch;VCLRESTComponents;FireDAC;DBXInformixDriver;FireDACMSSQLDriver;Intraweb;VclSmp;DataSnapConnectors;DataSnapServerMidas;DBXFirebirdDriver;dsnapcon;inet;fmxobj;FireDACMySQLDriver;soapmidas;vclx;DBXSybaseASADriver;FireDACOracleDriver;fmxdae;RESTComponents;FireDACMSAccDriver;DataSnapIndy10ServerTransport;dbexpress;IndyIPClient;$(DCC_UsePackage) 263 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png 264 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png 265 | $(BDS)\bin\Artwork\Windows\UWP\cppreg_UwpDefault_44.png 266 | $(BDS)\bin\Artwork\Windows\UWP\cppreg_UwpDefault_150.png 267 | 268 | 269 | DEBUG;$(DCC_Define) 270 | true 271 | false 272 | true 273 | true 274 | true 275 | 276 | 277 | 1 278 | 279 | 280 | true 281 | Cfg_1 282 | true 283 | 1 284 | 285 | 286 | true 287 | true 288 | 289 | 290 | Debug 291 | 292 | 293 | Debug 294 | 295 | 296 | false 297 | RELEASE;$(DCC_Define) 298 | 0 299 | false 300 | 301 | 302 | 1 303 | 304 | 305 | true 306 | Cfg_2 307 | true 308 | 1 309 | 310 | 311 | 312 | MainSource 313 | 314 | 315 | iPhone 316 |
HeaderFooterForm
317 | fmx 318 |
319 | 320 | Base 321 | 322 | 323 | Cfg_1 324 | Base 325 | 326 | 327 | Cfg_2 328 | Base 329 | 330 |
331 | 332 | Delphi.Personality.12 333 | Application 334 | 335 | 336 | 337 | HeaderFooterApplication.dpr 338 | 339 | 340 | 341 | True 342 | True 343 | True 344 | True 345 | True 346 | True 347 | 348 | 349 | 12 350 | 351 | 352 | 353 | 354 |
355 | -------------------------------------------------------------------------------- /Example/HeaderFooterApplication.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nilcemar/DelphiAndroidBroadcastReceiver/ab9bb5937b3a313da83e39c86cdec1cf0a1fb285/Example/HeaderFooterApplication.res -------------------------------------------------------------------------------- /Example/HeaderFooterTemplate.fmx: -------------------------------------------------------------------------------- 1 | object HeaderFooterForm: THeaderFooterForm 2 | Left = 0 3 | Top = 0 4 | Caption = 'Header Footer Form' 5 | ClientHeight = 567 6 | ClientWidth = 384 7 | FormFactor.Width = 1440 8 | FormFactor.Height = 900 9 | FormFactor.Devices = [Desktop] 10 | DesignerMasterStyle = 3 11 | object Header: TToolBar 12 | Size.Width = 384.000000000000000000 13 | Size.Height = 48.000000000000000000 14 | Size.PlatformDefault = False 15 | TabOrder = 0 16 | object HeaderLabel: TLabel 17 | Align = Contents 18 | Size.Width = 384.000000000000000000 19 | Size.Height = 48.000000000000000000 20 | Size.PlatformDefault = False 21 | StyleLookup = 'toollabel' 22 | TextSettings.HorzAlign = Center 23 | Text = 'ANDROID BROADCAST RECEIVER EXAMPLE' 24 | end 25 | end 26 | object Footer: TToolBar 27 | Align = Bottom 28 | Position.Y = 519.000000000000000000 29 | Size.Width = 384.000000000000000000 30 | Size.Height = 48.000000000000000000 31 | Size.PlatformDefault = False 32 | StyleLookup = 'bottomtoolbar' 33 | TabOrder = 1 34 | end 35 | object Button1: TButton 36 | Position.X = 136.000000000000000000 37 | Position.Y = 112.000000000000000000 38 | TabOrder = 3 39 | Text = 'Button1' 40 | OnClick = Button1Click 41 | end 42 | object Memo1: TMemo 43 | Touch.InteractiveGestures = [Pan, LongTap, DoubleTap] 44 | DataDetectorTypes = [] 45 | Position.X = 16.000000000000000000 46 | Position.Y = 216.000000000000000000 47 | Size.Width = 353.000000000000000000 48 | Size.Height = 295.000000000000000000 49 | Size.PlatformDefault = False 50 | TabOrder = 4 51 | Viewport.Width = 345.000000000000000000 52 | Viewport.Height = 287.000000000000000000 53 | end 54 | object BroadcastReceiver1: TAndroidBroadcastReceiver 55 | OnReceive = BroadcastReceiver1Receive 56 | Left = 280 57 | Top = 464 58 | end 59 | end 60 | -------------------------------------------------------------------------------- /Example/HeaderFooterTemplate.pas: -------------------------------------------------------------------------------- 1 | unit HeaderFooterTemplate; 2 | 3 | interface 4 | 5 | uses 6 | System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, 7 | FMX.Types, FMX.Graphics, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.StdCtrls, 8 | batBroadcastReceiver, FMX.Controls.Presentation, FMX.Memo.Types, 9 | FMX.ScrollBox, FMX.Memo 10 | {$IFDEF ANDROID} 11 | ,Androidapi.JNI.Embarcadero 12 | ,Androidapi.JNI.GraphicsContentViewText 13 | ,Androidapi.Helpers 14 | ,Androidapi.JNIBridge 15 | ,Androidapi.JNI.JavaTypes 16 | ,Androidapi.JNI.App 17 | {$ENDIF} 18 | ; 19 | 20 | type 21 | THeaderFooterForm = class(TForm) 22 | Header: TToolBar; 23 | Footer: TToolBar; 24 | HeaderLabel: TLabel; 25 | BroadcastReceiver1: TAndroidBroadcastReceiver; 26 | Button1: TButton; 27 | Memo1: TMemo; 28 | procedure Button1Click(Sender: TObject); 29 | procedure BroadcastReceiver1Receive(csContext: JContext; csIntent: JIntent); 30 | private 31 | { Private declarations } 32 | public 33 | { Public declarations } 34 | function getStringFromByteArray(ABytes: System.TArray ): String; 35 | end; 36 | 37 | var 38 | HeaderFooterForm: THeaderFooterForm; 39 | 40 | implementation 41 | 42 | {$R *.fmx} 43 | 44 | procedure THeaderFooterForm.BroadcastReceiver1Receive(csContext: JContext; 45 | csIntent: JIntent); 46 | 47 | var 48 | barocode: System.TArray; 49 | barcodeStr: String; 50 | barocodeLen: Integer; 51 | begin 52 | //Receive the message from listener 53 | //You can catch message string with csIntent.getAction 54 | //You can catch message data with, form example: csIntent.getByteArrayExtra('name'); 55 | //in this example we receive a message from Barcode Scanner 56 | 57 | if JStringToString(csIntent.getAction).Equals('scan.rcv.message') then 58 | begin 59 | barocode:= TAndroidHelper.TJavaArrayToTBytes(csIntent.getByteArrayExtra(StringToJString('barocode'))); 60 | barocodeLen:= csIntent.getIntExtra(StringToJString('length'),0); 61 | barcodeStr:= getStringFromByteArray(barocode); 62 | Memo1.Lines.Add(barcodeStr); 63 | 64 | end; 65 | 66 | 67 | Memo1.Lines.Add('Message: '+JStringToString(csIntent.getAction)); 68 | Memo1.Lines.Add('-----------------------------------------'); 69 | end; 70 | 71 | procedure THeaderFooterForm.Button1Click(Sender: TObject); 72 | begin 73 | BroadcastReceiver1.RegisterReceive; 74 | BroadcastReceiver1.Add('scan.rcv.message'); 75 | 76 | end; 77 | 78 | function THeaderFooterForm.getStringFromByteArray( 79 | ABytes: System.TArray): String; 80 | //convert a byte array to string 81 | begin 82 | Result := TEncoding.ANSI.GetString(ABytes); 83 | end; 84 | 85 | 86 | end. 87 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | BSD 3-Clause License 2 | 3 | Copyright (c) 2023, Nilcemar Ferreira 4 | 5 | Redistribution and use in source and binary forms, with or without 6 | modification, are permitted provided that the following conditions are met: 7 | 8 | 1. Redistributions of source code must retain the above copyright notice, this 9 | list of conditions and the following disclaimer. 10 | 11 | 2. Redistributions in binary form must reproduce the above copyright notice, 12 | this list of conditions and the following disclaimer in the documentation 13 | and/or other materials provided with the distribution. 14 | 15 | 3. Neither the name of the copyright holder nor the names of its 16 | contributors may be used to endorse or promote products derived from 17 | this software without specific prior written permission. 18 | 19 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 22 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 23 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 27 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | #Delphi TBroadcastReceiver Component 2 | 3 | 🇺🇸 - A Delphi component for send and receive Android Intent Broadcast messages, for you can easy integrate your applications with devices native SDK. 4 | 5 | 🇧🇷 - Um componente Delphi para enviar e receber mensagens Android Intent Broadcast, para que você possa integrar facilmente seus aplicativos com SDK nativos de dispositivos. 6 | 7 | ## Installation 8 | 9 | 1)Install DPK in your Delphi 10 | 2)Add the paths to your source path in Delphi 11 | 12 | 13 | ## Usage 14 | 15 | - 1) Put component in your project 16 | - 2) Initialize the receiver with method "RegisterReceive": 17 | 18 | ```delphi 19 | BroadcastReceiver1.RegisterReceive; 20 | ``` 21 | 22 | - 2) Add the broadcasts message(s) that you want to monitor 23 | 24 | ```delphi 25 | BroadcastReceiver1.Add('scan.rcv.message'); //monitor messages from a intent sending of a barcode scan SDK 26 | ``` 27 | 28 | - 3) When a message is received, you can interact via OnReceive event 29 | 30 | ```delphi 31 | procedure THeaderFooterForm.BroadcastReceiver1Receive(csContext: JContext; 32 | csIntent: JIntent); 33 | 34 | var 35 | barocode: System.TArray; 36 | barcodeStr: String; 37 | barocodeLen: Integer; 38 | begin 39 | //Receive the message from listener 40 | //You can catch message string with csIntent.getAction 41 | //You can catch message data with, form example: csIntent.getByteArrayExtra('name'); 42 | //in this example we receive a message from Barcode Scanner 43 | 44 | if JStringToString(csIntent.getAction).Equals('scan.rcv.message') then 45 | begin 46 | barocode:= TAndroidHelper.TJavaArrayToTBytes(csIntent.getByteArrayExtra(StringToJString('barocode'))); 47 | barocodeLen:= csIntent.getIntExtra(StringToJString('length'),0); 48 | barcodeStr:= BroadcastReceiver1.getStringFromByteArray(barocode); //convert a byte array to string 49 | Memo1.Lines.Add(barcodeStr); 50 | end; 51 | end; 52 | ``` 53 | 54 | - You can delete one or more messages from listener with "Delete" method 55 | 56 | 57 | ## Contribute 58 | 59 | We would ❤️ to see your contribution! 60 | 61 | ## Donate 62 | Did you like this plugin? Give me a coffee 😍 Gostou do componente? Me pague um café clicando no link abaixo: 63 | https://www.paypal.com/donate/?hosted_button_id=C7W7WEY2HXEHU 64 | 65 | ## About 66 | 67 | Created by Nilcemar Ferreira - .BAT Tecnologia 68 | Made in Brazil 🇧🇷 69 | 70 | instagram: @battecnologia 71 | site: https://www.battecnologia.com 72 | blog: nilcemar.blogspot.com 73 | -------------------------------------------------------------------------------- /TAndroidBroadcastReceiver.groupproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | {481B0527-A520-4DD9-82DF-582E153773BD} 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Default.Personality.12 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /batBroadcastReceiver.pas: -------------------------------------------------------------------------------- 1 | unit batBroadcastReceiver; 2 | 3 | interface 4 | 5 | uses 6 | System.SysUtils, System.Classes 7 | 8 | 9 | {$IFDEF ANDROID} 10 | ,Androidapi.JNI.Embarcadero 11 | ,Androidapi.JNI.GraphicsContentViewText 12 | ,Androidapi.Helpers 13 | ,Androidapi.JNIBridge 14 | ,Androidapi.JNI.JavaTypes 15 | ,Androidapi.JNI.App 16 | {$ENDIF} 17 | ; 18 | 19 | type 20 | 21 | 22 | {$IFNDEF ANDROID} 23 | JIntent = class 24 | end; 25 | JContext = class 26 | end; 27 | {$ENDIF} 28 | 29 | TAndroidBroadcastReceiver= class; 30 | TOnReceive = procedure (csContext: JContext; csIntent: JIntent) of object; 31 | 32 | {$IFDEF ANDROID} 33 | TBroadcastListener = class(TJavaLocal, JFMXBroadcastReceiverListener) 34 | private 35 | FOwner: TAndroidBroadcastReceiver; 36 | public 37 | constructor Create(AOwner: TAndroidBroadcastReceiver); 38 | procedure OnReceive(csContext: JContext; csIntent: JIntent); cdecl; 39 | end; 40 | {$ENDIF} 41 | 42 | 43 | TAndroidBroadcastReceiver = class(TComponent) 44 | private 45 | { Private declarations } 46 | {$IFDEF ANDROID} 47 | FReceiver: JBroadcastReceiver; 48 | FListener : TBroadcastListener; 49 | {$ENDIF} 50 | FOnReceive: TOnReceive; 51 | FItems: TStringList; 52 | function GetItem(const csIndex: Integer): String; 53 | 54 | protected 55 | { Protected declarations } 56 | public 57 | { Public declarations } 58 | constructor Create(AOwner: TComponent); override; 59 | destructor Destroy; override; 60 | procedure SendBroadcast(csValue: String); 61 | procedure Add(csValue: String); 62 | procedure Delete(csIndex: Integer); 63 | procedure Clear; 64 | {$IFDEF ANDROID} 65 | procedure setResultData(data: JString); 66 | {$ENDIF} 67 | function Remove(const csValue: String): Integer; 68 | function First: String; 69 | function Last: String; 70 | function HasPermission(const csPermission: string): Boolean; 71 | procedure RegisterReceive; 72 | property Item[const csIndex: Integer]: string read GetItem; default; 73 | property Items: TStringList read FItems write FItems; 74 | function StringFromByteArray(ABytes: System.TArray): String; 75 | 76 | published 77 | { Published declarations } 78 | property OnReceive: TOnReceive read FOnReceive write FOnReceive; 79 | end; 80 | 81 | procedure Register; 82 | 83 | implementation 84 | 85 | procedure Register; 86 | begin 87 | RegisterComponents('BAT_Tecnologia', [TAndroidBroadcastReceiver]); 88 | end; 89 | 90 | { TAndroidBroadcastReceiver } 91 | 92 | procedure TAndroidBroadcastReceiver.Add(csValue: String); 93 | {$IFDEF ANDROID} 94 | var 95 | Filter: JIntentFilter; 96 | {$ENDIF} 97 | begin 98 | {$IFDEF ANDROID} 99 | if (FListener = nil) or (FReceiver = nil) then 100 | begin 101 | Raise Exception.Create('First use RegisterReceive!'); 102 | Exit; 103 | end; 104 | {$ENDIF} 105 | 106 | if FItems <> nil then 107 | if FItems.IndexOf(csValue) = -1 then 108 | begin 109 | {$IFDEF ANDROID} 110 | filter := TJIntentFilter.Create; 111 | filter.addAction(StringToJString(csValue)); 112 | TAndroidHelper.Context.registerReceiver(FReceiver, filter); 113 | {$ENDIF} 114 | FItems.Add(csValue); 115 | end; 116 | end; 117 | 118 | procedure TAndroidBroadcastReceiver.Clear; 119 | begin 120 | FItems.Clear; 121 | end; 122 | 123 | constructor TAndroidBroadcastReceiver.Create(AOwner: TComponent); 124 | begin 125 | inherited; 126 | FItems := TStringList.Create; 127 | end; 128 | 129 | 130 | procedure TAndroidBroadcastReceiver.Delete(csIndex: Integer); 131 | begin 132 | if FItems <> nil then 133 | begin 134 | FItems.Delete(csIndex); 135 | {$IFDEF ANDROID} 136 | TAndroidHelper.Activity.UnregisterReceiver(FReceiver); 137 | RegisterReceive; 138 | {$ENDIF} 139 | end; 140 | end; 141 | 142 | 143 | destructor TAndroidBroadcastReceiver.Destroy; 144 | begin 145 | FItems.Free; 146 | {$IFDEF ANDROID} 147 | if FReceiver <> nil then 148 | TAndroidHelper.Activity.UnregisterReceiver(FReceiver); 149 | {$ENDIF} 150 | inherited; 151 | end; 152 | 153 | 154 | function TAndroidBroadcastReceiver.First: String; 155 | begin 156 | Result := FItems[0]; 157 | end; 158 | 159 | 160 | function TAndroidBroadcastReceiver.GetItem(const csIndex: Integer): String; 161 | begin 162 | Result := FItems[csIndex]; 163 | end; 164 | 165 | function TAndroidBroadcastReceiver.HasPermission( 166 | const csPermission: string): Boolean; 167 | {$IFDEF ANDROID} 168 | begin 169 | Result := TAndroidHelper.Activity.checkCallingOrSelfPermission(StringToJString(csPermission)) = TJPackageManager.JavaClass.PERMISSION_GRANTED; 170 | {$ELSE} 171 | begin 172 | Result := False; 173 | {$ENDIF} 174 | end; 175 | 176 | 177 | 178 | function TAndroidBroadcastReceiver.Last: String; 179 | begin 180 | Result := FItems[FItems.Count]; 181 | end; 182 | 183 | 184 | procedure TAndroidBroadcastReceiver.RegisterReceive; 185 | {$IFDEF ANDROID} 186 | var 187 | I: Integer; 188 | begin 189 | if FListener = nil then 190 | FListener := TBroadcastListener.Create(Self); 191 | if FReceiver = nil then 192 | FReceiver := TJFMXBroadcastReceiver.JavaClass.init(FListener); 193 | if FItems <> nil then 194 | if FItems.Count > 0 then 195 | for I := 0 to FItems.Count -1 do 196 | Add(FItems[I]); 197 | {$ELSE} 198 | begin 199 | {$ENDIF} 200 | end; 201 | 202 | 203 | function TAndroidBroadcastReceiver.Remove(const csValue: String): Integer; 204 | begin 205 | Result := FItems.IndexOf(csValue); 206 | if Result > -1 then 207 | FItems.Delete(Result); 208 | end; 209 | 210 | 211 | procedure TAndroidBroadcastReceiver.SendBroadcast(csValue: String); 212 | {$IFDEF ANDROID} 213 | var 214 | Inx: JIntent; 215 | begin 216 | Inx := TJIntent.Create; 217 | Inx.setAction(StringToJString(csValue)); 218 | TAndroidHelper.Context.sendBroadcast(Inx); 219 | {$ELSE} 220 | begin 221 | {$ENDIF} 222 | end; 223 | 224 | 225 | function TAndroidBroadcastReceiver.StringFromByteArray( 226 | ABytes: System.TArray): String; 227 | //convert a byte array to string 228 | begin 229 | Result := TEncoding.ANSI.GetString(ABytes); 230 | end; 231 | 232 | {$IFDEF ANDROID} 233 | procedure TAndroidBroadcastReceiver.setResultData(data: JString); 234 | begin 235 | FReceiver.setResultData(data); 236 | end; 237 | {$ENDIF} 238 | 239 | 240 | { TBroadcastListener } 241 | 242 | {$IFDEF ANDROID} 243 | constructor TBroadcastListener.Create(AOwner: TAndroidBroadcastReceiver); 244 | begin 245 | inherited Create; 246 | FOwner := AOwner; 247 | end; 248 | 249 | procedure TBroadcastListener.OnReceive(csContext: JContext; csIntent: JIntent); 250 | begin 251 | if Assigned(FOwner.OnReceive) then 252 | FOwner.onReceive(csContext, csIntent); 253 | end; 254 | {$ENDIF} 255 | 256 | end. 257 | -------------------------------------------------------------------------------- /delphiAndroidBroadcastReceiver.dpk: -------------------------------------------------------------------------------- 1 | package delphiAndroidBroadcastReceiver; 2 | 3 | {$R *.res} 4 | {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} 5 | {$ALIGN 8} 6 | {$ASSERTIONS ON} 7 | {$BOOLEVAL OFF} 8 | {$DEBUGINFO OFF} 9 | {$EXTENDEDSYNTAX ON} 10 | {$IMPORTEDDATA ON} 11 | {$IOCHECKS ON} 12 | {$LOCALSYMBOLS ON} 13 | {$LONGSTRINGS ON} 14 | {$OPENSTRINGS ON} 15 | {$OPTIMIZATION OFF} 16 | {$OVERFLOWCHECKS ON} 17 | {$RANGECHECKS ON} 18 | {$REFERENCEINFO ON} 19 | {$SAFEDIVIDE OFF} 20 | {$STACKFRAMES ON} 21 | {$TYPEDADDRESS OFF} 22 | {$VARSTRINGCHECKS ON} 23 | {$WRITEABLECONST OFF} 24 | {$MINENUMSIZE 1} 25 | {$IMAGEBASE $400000} 26 | {$DEFINE DEBUG} 27 | {$ENDIF IMPLICITBUILDING} 28 | {$IMPLICITBUILD ON} 29 | 30 | requires 31 | rtl; 32 | 33 | contains 34 | batBroadcastReceiver in 'batBroadcastReceiver.pas'; 35 | 36 | end. 37 | -------------------------------------------------------------------------------- /delphiAndroidBroadcastReceiver.dproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | {5D7189D1-9287-4E0E-ADA2-D1ADBEED2FD5} 4 | delphiAndroidBroadcastReceiver.dpk 5 | 19.5 6 | None 7 | True 8 | Debug 9 | Win32 10 | 32785 11 | Package 12 | 13 | 14 | true 15 | 16 | 17 | true 18 | Base 19 | true 20 | 21 | 22 | true 23 | Base 24 | true 25 | 26 | 27 | true 28 | Base 29 | true 30 | 31 | 32 | true 33 | Base 34 | true 35 | 36 | 37 | true 38 | Base 39 | true 40 | 41 | 42 | true 43 | Base 44 | true 45 | 46 | 47 | true 48 | Cfg_1 49 | true 50 | true 51 | 52 | 53 | true 54 | Base 55 | true 56 | 57 | 58 | .\$(Platform)\$(Config) 59 | .\$(Platform)\$(Config) 60 | false 61 | false 62 | false 63 | false 64 | false 65 | true 66 | true 67 | System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace) 68 | All 69 | delphiAndroidBroadcastReceiver 70 | 71 | 72 | None 73 | annotation-1.2.0.dex.jar;asynclayoutinflater-1.0.0.dex.jar;billing-4.0.0.dex.jar;browser-1.0.0.dex.jar;cloud-messaging.dex.jar;collection-1.0.0.dex.jar;coordinatorlayout-1.0.0.dex.jar;core-1.5.0-rc02.dex.jar;core-common-2.0.1.dex.jar;core-runtime-2.0.1.dex.jar;cursoradapter-1.0.0.dex.jar;customview-1.0.0.dex.jar;documentfile-1.0.0.dex.jar;drawerlayout-1.0.0.dex.jar;firebase-annotations-16.0.0.dex.jar;firebase-common-20.0.0.dex.jar;firebase-components-17.0.0.dex.jar;firebase-datatransport-18.0.0.dex.jar;firebase-encoders-17.0.0.dex.jar;firebase-encoders-json-18.0.0.dex.jar;firebase-iid-interop-17.1.0.dex.jar;firebase-installations-17.0.0.dex.jar;firebase-installations-interop-17.0.0.dex.jar;firebase-measurement-connector-19.0.0.dex.jar;firebase-messaging-22.0.0.dex.jar;fmx.dex.jar;fragment-1.0.0.dex.jar;google-play-licensing.dex.jar;interpolator-1.0.0.dex.jar;javax.inject-1.dex.jar;legacy-support-core-ui-1.0.0.dex.jar;legacy-support-core-utils-1.0.0.dex.jar;lifecycle-common-2.0.0.dex.jar;lifecycle-livedata-2.0.0.dex.jar;lifecycle-livedata-core-2.0.0.dex.jar;lifecycle-runtime-2.0.0.dex.jar;lifecycle-service-2.0.0.dex.jar;lifecycle-viewmodel-2.0.0.dex.jar;listenablefuture-1.0.dex.jar;loader-1.0.0.dex.jar;localbroadcastmanager-1.0.0.dex.jar;play-services-ads-20.1.0.dex.jar;play-services-ads-base-20.1.0.dex.jar;play-services-ads-identifier-17.0.0.dex.jar;play-services-ads-lite-20.1.0.dex.jar;play-services-base-17.5.0.dex.jar;play-services-basement-17.6.0.dex.jar;play-services-cloud-messaging-16.0.0.dex.jar;play-services-drive-17.0.0.dex.jar;play-services-games-21.0.0.dex.jar;play-services-location-18.0.0.dex.jar;play-services-maps-17.0.1.dex.jar;play-services-measurement-base-18.0.0.dex.jar;play-services-measurement-sdk-api-18.0.0.dex.jar;play-services-places-placereport-17.0.0.dex.jar;play-services-stats-17.0.0.dex.jar;play-services-tasks-17.2.0.dex.jar;print-1.0.0.dex.jar;room-common-2.1.0.dex.jar;room-runtime-2.1.0.dex.jar;slidingpanelayout-1.0.0.dex.jar;sqlite-2.0.1.dex.jar;sqlite-framework-2.0.1.dex.jar;swiperefreshlayout-1.0.0.dex.jar;transport-api-3.0.0.dex.jar;transport-backend-cct-3.0.0.dex.jar;transport-runtime-3.0.0.dex.jar;user-messaging-platform-1.0.0.dex.jar;versionedparcelable-1.1.1.dex.jar;viewpager-1.0.0.dex.jar;work-runtime-2.1.0.dex.jar 74 | package=com.embarcadero.$(MSBuildProjectName);label=$(MSBuildProjectName);versionCode=1;versionName=1.0.0;persistent=False;restoreAnyVersion=False;installLocation=auto;largeHeap=False;theme=TitleBar;hardwareAccelerated=true;apiKey= 75 | Debug 76 | rtl;$(DCC_UsePackage) 77 | 78 | 79 | None 80 | annotation-1.2.0.dex.jar;asynclayoutinflater-1.0.0.dex.jar;billing-4.0.0.dex.jar;browser-1.0.0.dex.jar;cloud-messaging.dex.jar;collection-1.0.0.dex.jar;coordinatorlayout-1.0.0.dex.jar;core-1.5.0-rc02.dex.jar;core-common-2.0.1.dex.jar;core-runtime-2.0.1.dex.jar;cursoradapter-1.0.0.dex.jar;customview-1.0.0.dex.jar;documentfile-1.0.0.dex.jar;drawerlayout-1.0.0.dex.jar;firebase-annotations-16.0.0.dex.jar;firebase-common-20.0.0.dex.jar;firebase-components-17.0.0.dex.jar;firebase-datatransport-18.0.0.dex.jar;firebase-encoders-17.0.0.dex.jar;firebase-encoders-json-18.0.0.dex.jar;firebase-iid-interop-17.1.0.dex.jar;firebase-installations-17.0.0.dex.jar;firebase-installations-interop-17.0.0.dex.jar;firebase-measurement-connector-19.0.0.dex.jar;firebase-messaging-22.0.0.dex.jar;fmx.dex.jar;fragment-1.0.0.dex.jar;google-play-licensing.dex.jar;interpolator-1.0.0.dex.jar;javax.inject-1.dex.jar;legacy-support-core-ui-1.0.0.dex.jar;legacy-support-core-utils-1.0.0.dex.jar;lifecycle-common-2.0.0.dex.jar;lifecycle-livedata-2.0.0.dex.jar;lifecycle-livedata-core-2.0.0.dex.jar;lifecycle-runtime-2.0.0.dex.jar;lifecycle-service-2.0.0.dex.jar;lifecycle-viewmodel-2.0.0.dex.jar;listenablefuture-1.0.dex.jar;loader-1.0.0.dex.jar;localbroadcastmanager-1.0.0.dex.jar;play-services-ads-20.1.0.dex.jar;play-services-ads-base-20.1.0.dex.jar;play-services-ads-identifier-17.0.0.dex.jar;play-services-ads-lite-20.1.0.dex.jar;play-services-base-17.5.0.dex.jar;play-services-basement-17.6.0.dex.jar;play-services-cloud-messaging-16.0.0.dex.jar;play-services-drive-17.0.0.dex.jar;play-services-games-21.0.0.dex.jar;play-services-location-18.0.0.dex.jar;play-services-maps-17.0.1.dex.jar;play-services-measurement-base-18.0.0.dex.jar;play-services-measurement-sdk-api-18.0.0.dex.jar;play-services-places-placereport-17.0.0.dex.jar;play-services-stats-17.0.0.dex.jar;play-services-tasks-17.2.0.dex.jar;print-1.0.0.dex.jar;room-common-2.1.0.dex.jar;room-runtime-2.1.0.dex.jar;slidingpanelayout-1.0.0.dex.jar;sqlite-2.0.1.dex.jar;sqlite-framework-2.0.1.dex.jar;swiperefreshlayout-1.0.0.dex.jar;transport-api-3.0.0.dex.jar;transport-backend-cct-3.0.0.dex.jar;transport-runtime-3.0.0.dex.jar;user-messaging-platform-1.0.0.dex.jar;versionedparcelable-1.1.1.dex.jar;viewpager-1.0.0.dex.jar;work-runtime-2.1.0.dex.jar 81 | package=com.embarcadero.$(MSBuildProjectName);label=$(MSBuildProjectName);versionCode=1;versionName=1.0.0;persistent=False;restoreAnyVersion=False;installLocation=auto;largeHeap=False;theme=TitleBar;hardwareAccelerated=true;apiKey= 82 | Debug 83 | rtl;$(DCC_UsePackage) 84 | 85 | 86 | rtl;$(DCC_UsePackage) 87 | 88 | 89 | Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) 90 | Debug 91 | true 92 | CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments= 93 | 1033 94 | rtl;$(DCC_UsePackage) 95 | 96 | 97 | rtl;$(DCC_UsePackage) 98 | 99 | 100 | DEBUG;$(DCC_Define) 101 | true 102 | false 103 | true 104 | true 105 | true 106 | true 107 | true 108 | 109 | 110 | false 111 | 112 | 113 | false 114 | RELEASE;$(DCC_Define) 115 | 0 116 | 0 117 | 118 | 119 | 120 | MainSource 121 | 122 | 123 | 124 | 125 | Base 126 | 127 | 128 | Cfg_1 129 | Base 130 | 131 | 132 | Cfg_2 133 | Base 134 | 135 | 136 | 137 | Delphi.Personality.12 138 | Package 139 | 140 | 141 | 142 | delphiAndroidBroadcastReceiver.dpk 143 | 144 | 145 | 146 | 147 | 148 | true 149 | 150 | 151 | 152 | 153 | true 154 | 155 | 156 | 157 | 158 | true 159 | 160 | 161 | 162 | 163 | delphiAndroidBroadcastReceiver.bpl 164 | true 165 | 166 | 167 | 168 | 169 | 1 170 | 171 | 172 | 0 173 | 174 | 175 | 176 | 177 | classes 178 | 64 179 | 180 | 181 | classes 182 | 64 183 | 184 | 185 | 186 | 187 | res\xml 188 | 1 189 | 190 | 191 | res\xml 192 | 1 193 | 194 | 195 | 196 | 197 | library\lib\armeabi-v7a 198 | 1 199 | 200 | 201 | 202 | 203 | library\lib\armeabi 204 | 1 205 | 206 | 207 | library\lib\armeabi 208 | 1 209 | 210 | 211 | 212 | 213 | library\lib\armeabi-v7a 214 | 1 215 | 216 | 217 | 218 | 219 | library\lib\mips 220 | 1 221 | 222 | 223 | library\lib\mips 224 | 1 225 | 226 | 227 | 228 | 229 | library\lib\armeabi-v7a 230 | 1 231 | 232 | 233 | library\lib\arm64-v8a 234 | 1 235 | 236 | 237 | 238 | 239 | library\lib\armeabi-v7a 240 | 1 241 | 242 | 243 | 244 | 245 | res\drawable 246 | 1 247 | 248 | 249 | res\drawable 250 | 1 251 | 252 | 253 | 254 | 255 | res\values 256 | 1 257 | 258 | 259 | res\values 260 | 1 261 | 262 | 263 | 264 | 265 | res\values-v21 266 | 1 267 | 268 | 269 | res\values-v21 270 | 1 271 | 272 | 273 | 274 | 275 | res\values 276 | 1 277 | 278 | 279 | res\values 280 | 1 281 | 282 | 283 | 284 | 285 | res\drawable 286 | 1 287 | 288 | 289 | res\drawable 290 | 1 291 | 292 | 293 | 294 | 295 | res\drawable-xxhdpi 296 | 1 297 | 298 | 299 | res\drawable-xxhdpi 300 | 1 301 | 302 | 303 | 304 | 305 | res\drawable-xxxhdpi 306 | 1 307 | 308 | 309 | res\drawable-xxxhdpi 310 | 1 311 | 312 | 313 | 314 | 315 | res\drawable-ldpi 316 | 1 317 | 318 | 319 | res\drawable-ldpi 320 | 1 321 | 322 | 323 | 324 | 325 | res\drawable-mdpi 326 | 1 327 | 328 | 329 | res\drawable-mdpi 330 | 1 331 | 332 | 333 | 334 | 335 | res\drawable-hdpi 336 | 1 337 | 338 | 339 | res\drawable-hdpi 340 | 1 341 | 342 | 343 | 344 | 345 | res\drawable-xhdpi 346 | 1 347 | 348 | 349 | res\drawable-xhdpi 350 | 1 351 | 352 | 353 | 354 | 355 | res\drawable-mdpi 356 | 1 357 | 358 | 359 | res\drawable-mdpi 360 | 1 361 | 362 | 363 | 364 | 365 | res\drawable-hdpi 366 | 1 367 | 368 | 369 | res\drawable-hdpi 370 | 1 371 | 372 | 373 | 374 | 375 | res\drawable-xhdpi 376 | 1 377 | 378 | 379 | res\drawable-xhdpi 380 | 1 381 | 382 | 383 | 384 | 385 | res\drawable-xxhdpi 386 | 1 387 | 388 | 389 | res\drawable-xxhdpi 390 | 1 391 | 392 | 393 | 394 | 395 | res\drawable-xxxhdpi 396 | 1 397 | 398 | 399 | res\drawable-xxxhdpi 400 | 1 401 | 402 | 403 | 404 | 405 | res\drawable-small 406 | 1 407 | 408 | 409 | res\drawable-small 410 | 1 411 | 412 | 413 | 414 | 415 | res\drawable-normal 416 | 1 417 | 418 | 419 | res\drawable-normal 420 | 1 421 | 422 | 423 | 424 | 425 | res\drawable-large 426 | 1 427 | 428 | 429 | res\drawable-large 430 | 1 431 | 432 | 433 | 434 | 435 | res\drawable-xlarge 436 | 1 437 | 438 | 439 | res\drawable-xlarge 440 | 1 441 | 442 | 443 | 444 | 445 | res\values 446 | 1 447 | 448 | 449 | res\values 450 | 1 451 | 452 | 453 | 454 | 455 | 1 456 | 457 | 458 | 1 459 | 460 | 461 | 0 462 | 463 | 464 | 465 | 466 | 1 467 | .framework 468 | 469 | 470 | 1 471 | .framework 472 | 473 | 474 | 1 475 | .framework 476 | 477 | 478 | 0 479 | 480 | 481 | 482 | 483 | 1 484 | .dylib 485 | 486 | 487 | 1 488 | .dylib 489 | 490 | 491 | 1 492 | .dylib 493 | 494 | 495 | 0 496 | .dll;.bpl 497 | 498 | 499 | 500 | 501 | 1 502 | .dylib 503 | 504 | 505 | 1 506 | .dylib 507 | 508 | 509 | 1 510 | .dylib 511 | 512 | 513 | 1 514 | .dylib 515 | 516 | 517 | 1 518 | .dylib 519 | 520 | 521 | 1 522 | .dylib 523 | 524 | 525 | 0 526 | .bpl 527 | 528 | 529 | 530 | 531 | 0 532 | 533 | 534 | 0 535 | 536 | 537 | 0 538 | 539 | 540 | 0 541 | 542 | 543 | 0 544 | 545 | 546 | 0 547 | 548 | 549 | 0 550 | 551 | 552 | 0 553 | 554 | 555 | 0 556 | 557 | 558 | 559 | 560 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 561 | 1 562 | 563 | 564 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 565 | 1 566 | 567 | 568 | 569 | 570 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 571 | 1 572 | 573 | 574 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 575 | 1 576 | 577 | 578 | 579 | 580 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 581 | 1 582 | 583 | 584 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 585 | 1 586 | 587 | 588 | 589 | 590 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 591 | 1 592 | 593 | 594 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 595 | 1 596 | 597 | 598 | 599 | 600 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 601 | 1 602 | 603 | 604 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 605 | 1 606 | 607 | 608 | 609 | 610 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 611 | 1 612 | 613 | 614 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 615 | 1 616 | 617 | 618 | 619 | 620 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 621 | 1 622 | 623 | 624 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 625 | 1 626 | 627 | 628 | 629 | 630 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 631 | 1 632 | 633 | 634 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 635 | 1 636 | 637 | 638 | 639 | 640 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 641 | 1 642 | 643 | 644 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 645 | 1 646 | 647 | 648 | 649 | 650 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 651 | 1 652 | 653 | 654 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 655 | 1 656 | 657 | 658 | 659 | 660 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 661 | 1 662 | 663 | 664 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 665 | 1 666 | 667 | 668 | 669 | 670 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 671 | 1 672 | 673 | 674 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 675 | 1 676 | 677 | 678 | 679 | 680 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 681 | 1 682 | 683 | 684 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 685 | 1 686 | 687 | 688 | 689 | 690 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 691 | 1 692 | 693 | 694 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 695 | 1 696 | 697 | 698 | 699 | 700 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 701 | 1 702 | 703 | 704 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 705 | 1 706 | 707 | 708 | 709 | 710 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 711 | 1 712 | 713 | 714 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 715 | 1 716 | 717 | 718 | 719 | 720 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 721 | 1 722 | 723 | 724 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 725 | 1 726 | 727 | 728 | 729 | 730 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 731 | 1 732 | 733 | 734 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 735 | 1 736 | 737 | 738 | 739 | 740 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 741 | 1 742 | 743 | 744 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 745 | 1 746 | 747 | 748 | 749 | 750 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 751 | 1 752 | 753 | 754 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 755 | 1 756 | 757 | 758 | 759 | 760 | 1 761 | 762 | 763 | 1 764 | 765 | 766 | 767 | 768 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 769 | 1 770 | 771 | 772 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 773 | 1 774 | 775 | 776 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 777 | 1 778 | 779 | 780 | 781 | 782 | 783 | 784 | 785 | 1 786 | 787 | 788 | 1 789 | 790 | 791 | 1 792 | 793 | 794 | 795 | 796 | 797 | 798 | 799 | Contents\Resources 800 | 1 801 | 802 | 803 | Contents\Resources 804 | 1 805 | 806 | 807 | Contents\Resources 808 | 1 809 | 810 | 811 | 812 | 813 | library\lib\armeabi-v7a 814 | 1 815 | 816 | 817 | library\lib\arm64-v8a 818 | 1 819 | 820 | 821 | 1 822 | 823 | 824 | 1 825 | 826 | 827 | 1 828 | 829 | 830 | 1 831 | 832 | 833 | 1 834 | 835 | 836 | 1 837 | 838 | 839 | 1 840 | 841 | 842 | 0 843 | 844 | 845 | 846 | 847 | library\lib\armeabi-v7a 848 | 1 849 | 850 | 851 | 852 | 853 | 1 854 | 855 | 856 | 1 857 | 858 | 859 | 860 | 861 | Assets 862 | 1 863 | 864 | 865 | Assets 866 | 1 867 | 868 | 869 | 870 | 871 | Assets 872 | 1 873 | 874 | 875 | Assets 876 | 1 877 | 878 | 879 | 880 | 881 | 882 | 883 | 884 | 885 | 886 | 887 | 888 | 889 | 890 | 891 | 892 | True 893 | True 894 | False 895 | True 896 | False 897 | 898 | 899 | 12 900 | 901 | 902 | 903 | 904 | 905 | -------------------------------------------------------------------------------- /delphiAndroidBroadcastReceiver.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nilcemar/DelphiAndroidBroadcastReceiver/ab9bb5937b3a313da83e39c86cdec1cf0a1fb285/delphiAndroidBroadcastReceiver.res --------------------------------------------------------------------------------