-
Content Count
1608 -
Joined
-
Last visited
-
Days Won
36
Everything posted by Dave Nottage
-
Not sure this will help you, but I have added a function just yesterday to copy large files that have been selected using TFilesSelector. It is the class function TAndroidFileStream.Copy (in DW.Android.Helpers), which can be called like this: TAndroidFileStream.Copy(LRawPath, LFileName); Where LRawPath contains the raw URI for the selected file, and LFileName contains the destination file path Please be aware that copying a large file can take several seconds (in my test, a 2.5GB file took 7 seconds on my Pixel 6 Pro), so you may want to pass that task off to a thread. Surely you'll need to actually have the file in order to compress it anyway?
-
@Chris Pim has. See this.
-
Set the WordWrap property on the TTextObjectAppearance item to True:
-
No, since one is an application id, and the other is an ad unit id. By setting the AdUnitId property of those you have ids for. You set these up in the AdMob web interface .The most likely cause is that you need to configure GDPR and IDFA messages, here.
-
I just noticed in your screenshot that you also had the name attribute of the meta-data incorrect, however given that the first error has gone, I assume you've corrected that? It should look like this: <meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="ca-app-pub-1692413347180528~0000000000"/> i.e. the name attribute should be: com.google.android.gms.ads.APPLICATION_ID If it is now correct, the next error message suggests that the value (in the value attribute of the meta-data) you are supplying is incorrect. You should also pay attention to the details in the User Messaging Platform section of the readme.
-
Looking at your screenshot, you have the meta-data inside of a service tag, rather than inside the application tag, as per the readme that I linked to.
-
ShowModal hang/crashes on iOS 15 with iPhone 12 / 13
Dave Nottage replied to Eric Bonilha's topic in FMX
This issue has raised its ugly head again, this time on iPad 9th and 10th Gen devices (iOS 17.x). I've filed a new QP report which includes this workaround: 1. Copy FMX.Platform.iOS.pas from the source\fmx folder in your Delphi install, to the same folder as your project. 2. Modify the TCocoaTouchWindowManager.CanShowModal method thus: function TCocoaTouchWindowManager.CanShowModal: Boolean; begin // Patched - was returning True Result := False; end; This ensures that the form is actually shown non-modally, but will call the modal result function when the form is closed. -
It's literally telling you what the problem is, i.e. you need to include meta-data in the manifest. Please see this section of the readme.
-
Given the quotes above, no. A reproducible example might make it clearer.
-
You still receive the error when the app is active? Or do you mean you receive it when the app goes into the background? (which includes the device going to sleep). iOS has very strict rules (much worse than Android) about background execution. You might want to read this. Also, you may want to consider why your app needs to access Firestore when the app is in the background, and whether it should just retry the request when the app becomes active.
-
Firemonkey Android AlarmManager to open application
Dave Nottage replied to Ruslan's topic in Cross-platform
It could be this: https://developer.android.com/about/versions/14/changes/schedule-exact-alarms ..and/or it could be this: https://developer.android.com/guide/components/activities/background-starts Using a logcat viewer to check what messages are emitted by the system would help diagnose the problem. -
Exception logging/reporting on MacOS?
Dave Nottage replied to Brandon Staggs's topic in Cross-platform
https://blog.grijjy.com/2021/10/18/build-your-own-error-reporter-part-3-macos-intel/ Note that when this was published, there was yet to be support for ARM, however the last line says: "I may add some missing pieces to get this to work for ARM Mac apps as well" Since the code has not been updated since then, you'd need to either contact Erik or add an issue to the repo, regarding support for ARM. -
Problem with Android app migration from Delphi10.3 to Delphi 12.1
Dave Nottage replied to Fabian1648's topic in Delphi IDE and APIs
You might like to read this: https://developer.android.com/develop/background-work/background-tasks/broadcasts#context-registered-receivers ..and remember that I asked about what your code is doing. Presumably, part of it is registering a receiver at runtime, and it is not including RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED in the flags when calling registerReceiver. -
It is relatively trivial in the IDE. There are however some "gotchas" with some controls that are not automatically themed, or not themed well - TGroupBox being one of them. I've had a bit of a look into this myself. It would be relatively straightforward if it were not for the "gotchas" I mentioned above, and for the DpiScaler (part of GExperts) which seems to totally confuse theming of the title bars. Even with "disabling" the DpiScaler, the Grep Search (which is what I use most in GExperts) looks like this when themed (including title bar): Note how the control to search for text is covered by the title bar, how horrid the TGroupBox controls look, etc. When I started theme support in Codex, I gave up on TGroupBox. Same form when not theming the title bar:
-
iOS Simulator Problem connecting to Rest Server
Dave Nottage replied to Shano's topic in Cross-platform
I did this quite some time ago, however it's for x86 simulator (as opposed to arm64, which is the only simulator architecture now supported by Delphi). See also this link. This answer from SO might be useful. If it's just for http(s), I strongly recommend using the native HTTP client, because it makes development/deployment much, much easier. -
iOS Simulator Problem connecting to Rest Server
Dave Nottage replied to Shano's topic in Cross-platform
It's possible that you will need to add this to info.plist.TemplateiOS.xml inside of the <dict> tag: <key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict> -
Convert Visual Studio 2012 code to Delphi
Dave Nottage replied to Bahram Akhundov's topic in General Help
Apparently you would need a BMW ZGW device, or a way of simulating one. -
Upgraded to D12 and can't call the GPU for AI inference on Android
Dave Nottage replied to tomye's topic in Cross-platform
It appears TF is accessing resources that have been restricted in Android 12 and above. Do you plan on deploying the app to Play Store? -
TDirectory.CreateDirectory not creating new folder
Dave Nottage replied to Delpher2600's topic in FMX
The target API level for Delphi 11.3 defaults to 32, which is Android 12. Since Android 10, access to shared folders has been restricted. You'll need to either manually modify AndroidManifest.template.xml to change %targetSdkVersion% to 29 (Android 10) and ensure that the android:requestLegacyExternalStorage=true attribute is present on the application opening tag, or rethink how you're accessing files, e.g. whether they need to be in a shared area at all, and if so, whether to use MediaStore or DocumentsProvider. You may want to read this. -
Problem with Android app migration from Delphi10.3 to Delphi 12.1
Dave Nottage replied to Fabian1648's topic in Delphi IDE and APIs
Not sure why you would expect anyone to know without any detail whatsoever as to what your code is doing. You could use a logcat viewer to view what messages are coming from the device when the app attempts to start. See this link: https://github.com/DelphiWorlds/HowTo/tree/main/Solutions/LogViewers#android -
Upgraded to D12 and can't call the GPU for AI inference on Android
Dave Nottage replied to tomye's topic in Cross-platform
I sincerely doubt that is the only way, however since you refuse to give a more complete example (not in a screenshot, and something that is sufficient to reproduce the issue), it's difficult to find an answer. Good luck -
Upgraded to D12 and can't call the GPU for AI inference on Android
Dave Nottage replied to tomye's topic in Cross-platform
There's still insufficient detail in your code example (and screenshots are the worst form of example code). As per my initial reply, I said to use "a logcat viewer to look for related messages" (from the Android device), not messages in the IDE. -
Upgraded to D12 and can't call the GPU for AI inference on Android
Dave Nottage replied to tomye's topic in Cross-platform
Your example is a bit light on details - how are all these defined? InterpreterOptionsAddDelegate InterpreterOptions GpuDelegate InterpreterCreate Model Regardless, have you used a logcat viewer to look for related messages (error, or otherwise)? -
Code for getting permissions not working in Delphi 11
Dave Nottage replied to Delpher2600's topic in FMX
This: procedure(const APermissions: TArray<string>; const AGrantResults: TArray<TPermissionStatus>) Needs to be: procedure(const APermissions: TClassicStringDynArray; const AGrantResults: TClassicPermissionStatusDynArray) I believe the change to the types was related to C++Builder compatibility