├── .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 |
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
--------------------------------------------------------------------------------