-
Content Count
1490 -
Joined
-
Last visited
-
Days Won
36
Everything posted by Dave Nottage
-
From what I could see from the initial post, they have all that. This is usually due to the version of Xcode being incompatible with the version of PAServer. If the aim is to create an IPA to put on the App Store, it's not going to work since the App Store now requires Xcode 13, and 10.4.2 has a PAServer that is incompatible with Xcode 13. To produce .IPA files, I strongly recommend using Delphi 11.1. There is otherwise this workaround:
-
That's way too vague. Did you try the demo? Bear in mind (and if you read the readme) that it depends on the Kastri library.
-
Android libraries (Kastri), cannot be added to 32-Bit and 64-Bit platform
Dave Nottage replied to Rollo62's topic in Cross-platform
Your first post didn't seem to imply that there were any issues (other than it being confusing, which it is), in fact it stated: There isn't any way of "working around" the confusion - Embarcadero would need to change the way the IDE works, and/or make it clearer to the developer why it works this way -
Android libraries (Kastri), cannot be added to 32-Bit and 64-Bit platform
Dave Nottage replied to Rollo62's topic in Cross-platform
Related reports: https://quality.embarcadero.com/browse/RSP-27501 https://quality.embarcadero.com/browse/RSP-26659 -
You don't see this part? 😉
-
If you're referring to this demo: https://github.com/Embarcadero/RADStudio11Demos/tree/main/Object Pascal/Multi-Device Samples/Device Sensors and Services/AndroidNotificationServiceDemo There seems to be some missing information in the project file because it does not even add the service to the manifest, and the service jar is not listed under the Libraries node of the Android platform in Project Manager. What I did to rectify this was to: Right-click the Android platform node in Project Manager Click Remove Android Services Select the checkbox next to the service in the list Click Next Click Finish Right-click the Android platform node in Project Manager again Click Add Android Service Click Next Select the path to the service, i.e. AndroidNotificationServiceDemo\NotificationService Click Select Folder Click Next Click Finish Then recompile/deploy/run After you click Start Service, a notification should appear soon after in the system status bar. Opening the notification and tapping on it should open the app and the notification info should appear in the memo
-
This may be of interest to you: https://github.com/DelphiWorlds/Playground/tree/main/Demos/AdMob Once I have the events for the full screen ads sorted out on iOS, I plan on moving it over to Kastri
-
It's possible there is. My question was: What are the steps to reproduce that the website will definitely show in dark mode? Then I can test that the code will force it into light mode
-
Play Store - Your Device Isn't Compatible with This Version
Dave Nottage replied to David Carroll's topic in Cross-platform
Looks pretty normal. Your customer might want to visit this link: https://helpdeskgeek.com/help-desk/fix-your-device-isnt-compatible-with-this-version-on-android/ -
I may have a solution, however I'm having trouble verifying that it works. What are the steps to reproduce that the website will definitely show in dark mode? At present, all I'm doing is navigating to https://www.google.com, and TWebBrowser shows the site in light mode, despite the Chrome app showing it in dark mode (which is what my device is set to)
-
Play Store - Your Device Isn't Compatible with This Version
Dave Nottage replied to David Carroll's topic in Cross-platform
Please show what is in AndroidManifest.xml (i.e. not AndroidManifest.template.xml) -
I'm not seeing that after applying Patch 1. What I mean by that is after saving, the buttons are not enabled, and the modified mark is removed. When opening a project, there's still the bug of the IDE thinking that the project has changed, even though no changes have been made.
-
I don't see how that would have ever compiled in that form. Since it's a standalone function, there's no "Self" for it to refer to. Perhaps InternalGetHardwareID was once a method of an object?
-
Error when compiler an Android App with KeyStore File
Dave Nottage replied to Johansy's topic in FMX
Can you post what error messages you have? (like Johansy did) -
How to know how app was started
Dave Nottage replied to John van de Waeter's topic in Cross-platform
The notification is (at least when I last checked) "received" before the app becomes active, so you could have a flag that is set when the BecameActive event fires (to indicate the app was launched), and another to indicate whether the app went into the background, and set that when the EnteredBackground event fires, e.g.: unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, System.Messaging, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs; type TForm1 = class(TForm) private FIsLaunched: Boolean; FIsBackground: Boolean; procedure ApplicationEventMessageHandler(const Sender: TObject; const M: TMessage); public constructor Create(AOwner: TComponent); override; destructor Destroy; override; end; var Form1: TForm1; implementation {$R *.fmx} uses FMX.Platform; { TForm1 } constructor TForm1.Create(AOwner: TComponent); begin inherited; TMessageManager.DefaultManager.SubscribeToMessage(TApplicationEventMessage, ApplicationEventMessageHandler); FIsLaunched := False; FIsBackground := True; end; destructor TForm1.Destroy; begin TMessageManager.DefaultManager.Unsubscribe(TApplicationEventMessage, ApplicationEventMessageHandler); inherited; end; procedure TForm1.ApplicationEventMessageHandler(const Sender: TObject; const M: TMessage); begin case TApplicationEventMessage(M).Value.Event of TApplicationEvent.BecameActive: begin FIsLaunched := True; FIsBackground := False; end; TApplicationEvent.EnteredBackground: FIsBackground := True; end; end; end. When the app receives a notification: if the app was being launched from not running, FIsLaunched should be False (does not matter what FIsBackground is), if launched from the background, FIsLaunched and FIsBackground should be True. -
fgxnative FGX Native - crossplatform mobile native development
Dave Nottage replied to Yaroslav Brovin's topic in Delphi Third-Party
Last time I tried FGX (a few months ago), this was not true (at least not entirely). Anything that relies on FMX could not be used, and I actually changed part of Kastri to allow for this (i.e. so that particular part of Kastri could still be used in FGX). That said, I concur that FGX is a fantastic product 🙂 -
Android: Opening files in external application
Dave Nottage replied to Bart Kindt's topic in Cross-platform
By this do you mean the paths returned by, for example, GetSharedDocumentsPath and GetSharedDownloadsPath? Can you show what you have tried? -
It does in Delphi 11: https://docwiki.embarcadero.com/RADStudio/Alexandria/en/New_features_and_customer_reported_issues_fixed_in_RAD_Studio_11.0
-
This suggests it can be done using TMediaPlayer: https://github.com/Embarcadero/RADStudio11Demos/tree/main/Object Pascal/Multi-Device Samples/Media/StreamingMedia
-
Delphi 11.1 is available
Dave Nottage replied to Uwe Raabe's topic in Tips / Blogs / Tutorials / Videos
Tracking of downloads has been set up for the "official" links would be my guess. -
Massive (!) reduction of supported Android devices in 10.4
Dave Nottage replied to stewag64's topic in Cross-platform
I've extracted the steps from the article into this: https://github.com/DelphiWorlds/HowTo/tree/main/Solutions/AndroidLowerVersions Can you confirm you've followed the steps exactly? Check that the generated AndroidManifest.xml has the correct value for minSdkVersion, and perhaps post a screenshot here of your NDK settings. -
Delphi 10.4.2 with XCode13 SDK15.0 packaging ipa fail
Dave Nottage replied to Raymond Ng's topic in Cross-platform
On April 1st, when deploying to App Store, Xcode 13 will be required, so in this case reverting to Xcode 12 is not a solution. See the earlier replies regarding using Mosco (and Codex) as a potential workaround for this Delphi 10.4.2 issue -
You're welcome to use the code from here: https://github.com/DelphiWorlds/Multicaster/blob/master/MC.LocalAddresses.Android.pas Code repeated here in case that repo ever "disappears": unit MC.LocalAddresses.Android; interface uses IdStack; procedure GetLocalAddressList(const AAddresses: TIdStackLocalAddressList); implementation uses // RTL System.SysUtils, // Android Androidapi.JNI.Java.Net, Androidapi.JNI.JavaTypes, Androidapi.Helpers, Androidapi.JNIBridge, // Indy IdGlobal; procedure GetLocalAddressList(const AAddresses: TIdStackLocalAddressList); var LInterfaces, LAddresses: JEnumeration; LInterface: JNetworkInterface; LAddress: JInetAddress; LName, LHostAddress: string; begin AAddresses.Clear; LInterfaces := TJNetworkInterface.JavaClass.getNetworkInterfaces; while LInterfaces.hasMoreElements do begin LInterface := TJNetworkInterface.Wrap(JObjectToID(LInterfaces.nextElement)); LAddresses := LInterface.getInetAddresses; while LAddresses.hasMoreElements do begin LAddress := TJInetAddress.Wrap(JObjectToID(LAddresses.nextElement)); if LAddress.isLoopbackAddress then Continue; // Hack until I can find out how to check properly LName := JStringToString(LAddress.getClass.getName); LHostAddress := JStringToString(LAddress.getHostAddress); // Trim excess stuff if LHostAddress.IndexOf('%') > -1 then LHostAddress := LHostAddress.Substring(0, LHostAddress.IndexOf('%')); if LName.Contains('Inet4Address') then TIdStackLocalAddressIPv4.Create(AAddresses, LHostAddress, '') else if LName.Contains('Inet6Address') then TIdStackLocalAddressIPv6.Create(AAddresses, LHostAddress); end; end; end; end. Note: this code hasn't been changed in some time. The "hack" can probably be done another way, and I'm pretty sure Yaroslav has told me JObjectToID isn't necessary
-
Firebase Adertising Problem After IOS 14
Dave Nottage replied to Ömer Gözlek's topic in Cross-platform
What happens when you run the project via the debugger? -
Firebase Adertising Problem After IOS 14
Dave Nottage replied to Ömer Gözlek's topic in Cross-platform
Those articles relate to Firebase Cloud Messaging, but your question seems to be about Firebase AdMob? Can you provide a minimal test project that reproduces the problem?