-
Content Count
1562 -
Joined
-
Last visited
-
Days Won
36
Everything posted by Dave Nottage
-
That's an alternative, but the discussion was about whether or not TPopupMenu works. The documentation is incorrect, the advice on the TRichView forum is correct - it's not supported on Android (or iOS)
-
LinkedIn job offer: Remote Senior Software Engineer with Evisions
Dave Nottage replied to Remy Lebeau's topic in Job Opportunities / Coder for Hire
Happens way too often for me - received one today. I'm at the point where I can recognise their "scam" and just ignore it. -
Ouch. I'm hoping that's an error...
-
Which document, and what does it state, exactly?
-
There is none, since they're stored in external storage, i.e. external to the app. Normally you would deploy files to the OBB folder using APK Expansion, however this method is deprecated and Play Store apps must use Play Feature Delivery or Play Asset Delivery. If you're interested in delivering files this way with Delphi, I have an implementation/demo here. Warning: it's not for the faint of heart 🙂
-
How to deploy a large Android app (150+ MB) using "Play Feature Delivery"?
Dave Nottage replied to Hans♫'s topic in Cross-platform
Whilst searching for something else, I came across this reply. If you haven't implemented this yet, I'll take a look. -
As long as the font file is deployed to ./assets/internal and that file has the same name as the font name, with the extension .otf or .ttf, then it should work without changing FMX.FontGlyphs.android
-
Is there a way to save Messages text on Android devices?
Dave Nottage replied to JohnLM's topic in Cross-platform
See this demo: https://github.com/DelphiWorlds/HowTo/tree/main/Demos/AndroidContent You could add code to persist the results to a file (or files) somewhere. -
It cannot be empty if it has a TMapView. Please post a reproducible example
-
Without code that reproduces the issue, it'd be hard to tell.
-
Did you restart Delphi, as per my reply?
-
You can check for the compile errors (of which there are several) yourself by using Error Insight or by compiling.
-
The semicolon is optional after an end in some circumstances. Please see this. I know it's not after an "end" but the principle is still the same.
-
I can't deploy my local files to the public directory of my phone, what's wrong?
Dave Nottage replied to jiyiwan's topic in Cross-platform
You cannot deploy a file using Deployment Manager to a folder outside of the application. It might help to know why you actually want to, as there are issues inherent with dealing with "public" folders, especially on later versions of Android. -
I have projects from earlier versions of Delphi that I've successfully migrated to Delphi 11.x, mainly because I've been aware of any changes that may be necessary. It has everything to do with what is being used in the application, and zero to do with compilation. Since you appear to be unwilling to share anything about your app, it's extremely difficult to know what the issue is.
-
None of that information is going to help resolve the issue. Detail about what is in the application may go part way to solving it. Ideally, provide a reproducible test case, which will go a much longer way.
-
I'm supporting these kinds of devices with Delphi 11.3. Please see: https://github.com/DelphiWorlds/HowTo/tree/main/Solutions/AndroidLowerVersions
-
Correct. It was introduced in Delphi 10.3 in order to support changes in Android. If you're doing mobile development with Delphi, it pays to stay current.
-
If you mean that the banner does not show, when an app is in the foreground, by default you do not see the banner. If you want the banner to show when the app is in the foreground you need to use a channel with the Importance set to High, and set the notifications ChannelId property, e.g. (extending your code): procedure SetNotification(const aTitle, aMessage: string); begin var vNotifiCenter:= TNotificationCenter.Create(nil); try if vNotifiCenter.Supported then begin var LChannel := vNotifiCenter.CreateChannel('MyChannel', 'MyChannel', 'My Channel'); try LChannel.Importance := TImportance.High; vNotifiCenter.CreateOrUpdateChannel(LChannel); finally LChannel.Free; end; var vNotification := vNotifiCenter.CreateNotification; try vNotification.AlertBody := aMessage; vNotification.Title := aTitle; vNotification.EnableSound := true; vNotification.ChannelId = 'MyChannel'; vNotifiCenter.PresentNotification(vNotification); finally vNotification.Free; end; end; finally vNotifiCenter.Free; end; end;
-
What you're showing is a local notification. Not sure what you mean - is the text in AMessage not showing in the notification? Which platform(s) is this an issue on?
-
Sometimes, due to a shortcoming with the IDE, the application gets "stuck" or crashes before the debugger has a chance to attach to the process. This can happen when a library required at initialization time is not present, or is not the right version. Without detail about the project (of which none at all so far has been provided), it'll be very difficult to diagnose.
-
Please show your code
-
Because it's the version of the SDK. When referring to API level being 33, it means just that: API level, not SDK version. Unfortunately Google decided to use names in the manifest like minSdkVersion and targetSdkVersion, when they actually refer to API level. 9009 means the executable was not found. One of your paths in the SDK settings may still be wrong.
-
You should not need to modify the base path. You should only need to ensure API 33 level and Build Tools 33.x are installed, and change the paths for the Build Tools related locations, and the SDK API Level location. APKSigner is part of the Android SDK, not Java SDK. See this post, and the replies that follow:
-
Incorrect. USE_BIOMETRIC needs to be included in the permissions, but only dangerous permissions need to be explicitly requested at runtime. You're also missing the Use Biometric permission in the Permissions section of Project Options. Sorry, I should have checked for that earlier.