Search the Community
Showing results for tags 'android'.
Found 149 results
-
Anyone compiled Android apps (api 16) for Industrial devices with Android 4.1.x
microtronx posted a topic in Cross-platform
Hi, i know that Rio does not support below API16 but we have some older apps for industrial devices we need to update them. They were programmed with Tokyo with a lot of problems and i want to test them with Rio. Rio is installed on a new VM so i want to know if someone has get it work to compile apps for api level 16 / android 4.1.1 with Rio. -
Hello, I am using Delphi 10.3.3, targeting Android 64Bit and 32Bit. Attached is a test project I used. If that same project is compiled for Android 32Bit it gets two permission request as can be seen in below pictures However, if same code without changing anything is compiled for Android 64Bit it only asks for a single permission as can be seen in below picture Both bitness apk files are tested on same physical phone running Android 9. I have tried to change order of permissions in request to see if this is related with request order. I always get same above permission asked on 64bit version. Let me know if you think this is a bug in Delphi, please. Thanks & regards, Ertan Android64Bit_Permisions.7z
-
Support for 64-bit Android App Development in EntityDAC
Jordan Sanders posted a topic in Delphi Third-Party
Devart, the leading provider of database management software, connectivity solutions and developer tools, released the new version of EntityDAC 2.3, a Delphi ORM framework for fast object-relational mapping of database objects to Delphi classes using LINQ. The key update in this release is support for 64-bit Android app development, following the release of RAD Studio 10.3.3 that includes a new Delphi compiler for the ARM platform. In RAD Studio 10.3.3, you can build Google Play Store ready Android 64-bit applications, complete with Android App Bundle Support — the official publishing format for Android apps. The new version of EntityDAC will come in handy since, starting August 1, 2019, apps published on Google Play need to support Android devices with 64-bit architectures, which means publishers are required to provide 64-bit versions in addition to 32-bit versions. The trial editions of EntityDAC for macOS and Linux are fully functional: the vendor removed the limitation on the number of ORM metatypes that users can create with the trial version of EntityDAC on these platforms. To learn more about the recent release, visit — https://blog.devart.com/entitydac-now-supports-android-64-bit.html. About Devart Devart is one of the leading developers of database tools and administration software, ALM solutions, data providers for various database servers, data integration and backup solutions. The company also implements Web and Mobile development projects. For additional information about Devart, visit https://www.devart.com/ -
Why i can't use TDSRestConnection in Rio and Android Service ... not starting any more
microtronx posted a topic in FMX
Hi Folks, i'm new to Android Services world but have successful created my first app with a background-service (used demo of Kastrifree / CrossPlatformLocation) as base. It works good, but as soon i add a tfdconnection for a local sqlite table or a TDSRestConnection for connecting to a remote-server in the service-module it does not start. My question is: What are the limits of a android-service-module created with Delphi Rio? What is blocking the service from starting if we add one of those components? -
Segmentation fault while trying to receive UDP broadcast messages on Android
ertank posted a topic in Indy
Hello, I am using Delphi 10.3.3, Indy 10.6.2.5366 (stock Indy version) I am trying to listen broadcast UDP messages on Android (exact version I am testing is 4.4.2, I need to support latest versions, too) connected to a local WiFi. Broadcast messages will be sent in same network. I have found this page https://stackoverflow.com/questions/19040674/delphi-xe5-tidudpserver-does-not-receive-anything-on-android and tried to do it as to my understanding. Project has CHANGE_WIFI_MULTICAST_STATE permission set. UDP server parameters are as following at design time and everything else is left as default: TIdUDPServer.Active = False TIdUDPServer.BroadcastEnable = True TIdUDPServer.DefaultPort = 8080 I have following code where timer is activated as last line in OnFormCreate() event and has 0.5 seconds delay: procedure TForm3.tmrCheckPhoneServiceTimer(Sender: TObject); var WifiManagerObj: JObject; begin // Run just once tmrCheckPhoneService.Enabled := False; // Get necessary OS settings to receive broadcast messages Log('Getting multicast lock...'); WifiManagerObj := TAndroidHelper.Context.getSystemService(TJContext.JavaClass.WIFI_SERVICE); FWifiManager := TJWifiManager.Wrap((WifiManagerObj as ILocalObject).GetObjectID); FMulticastLock := FWifiManager.createMulticastLock(StringToJString('LightFactory Remote')); FMulticastLock.setReferenceCounted(True); FMulticastLock.acquire(); // Try to open a port on Android by sending a broadcast message Log('Sending a broadcast message...'); IdUDPServer1.Broadcast('test', IdUDPServer1.DefaultPort); // Now we can start to listen Log('Activating UDP listener...'); IdUDPServer1.Active := True; if FPhoneDialerService = nil then begin TDialogService.ShowMessage('PhoneDialer service not supported'); Exit(); end; PermissionsService.RequestPermissions([FCallPhonePermission], MakePhoneCallPermissionRequestResult, DisplayRationale); end; I have following code in my OnDestroy() event: procedure TForm3.FormDestroy(Sender: TObject); begin // Stop listenning. IdUDPServer1.Active := False; // Release multicast lock FMulticastLock.release(); end; My broadcast listening code is as following: procedure TForm3.IdUDPServer1UDPRead(AThread: TIdUDPListenerThread; const AData: TIdBytes; ABinding: TIdSocketHandle); var Data: string; begin Data := TEncoding.Default.GetString(AData); TThread.Queue(nil, procedure begin Log('Incoming broadcast message from: ' + ABinding.PeerIP) end); if SameText(Data, 'mytriggerphrase') then begin TThread.Queue(nil, procedure begin TestConnection(ABinding.PeerIP) end); end; end; After I run the app, I have following in my log: 2020-01-14 00:59:33.697 Getting multicast lock... 2020-01-14 00:59:33.736 Sending a broadcast message... 2020-01-14 00:59:33.740 Activating UDP listener... 2020-01-14 00:59:33.804 Incoming broadcast message from: 192.168.1.186 That IP number in above log belongs to Android device itself. I have following problems that I could not figure a solution: 1- I do not get any other broadcast message from my PC application which is sending one broadcast message each second. Is there anything I am doing wrong for that to happen? 2- I get segmentation fault (11) when closing my app. Detailed call stack and exact line is in attached picture. This happens each and every close. I did not understand why. Lastly, I am not sure if my code is doing it correct to keep multicast lock thru all run-time. I read a suggestion to release a multicast lock once finished with it in order to save battery life. So, I wonder if I can release multicast lock right after enabling my TIdUDPServer? Any help is appreciated. Thanks & regards, Ertan -
Hello, Using Delphi 10.3.3. I have no problem compiling Android apps. I just needed to use a service to test something and I failed to compile. Below is error message I receive on a new Android Service project: [Exec Error] The command ""\bin\javac" -d "C:\Users\Ertan\Documents\Embarcadero\Studio\Projects\JavaClasses\Project2" -Xlint:deprecation -classpath "C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.36039.7899\platforms\android-26\android.jar";"c:\program files (x86)\embarcadero\studio\20.0\lib\Android\Debug\android-support-v4.jar";"c:\program files (x86)\embarcadero\studio\20.0\lib\Android\Debug\fmx.jar" -bootclasspath "C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.36039.7899\platforms\android-26\android.jar" -encoding UTF-8 -target 1.6 -g -source 1.6 .\Android\Debug\Project2.java .\Android\Debug\Project2ProxyInterface.java" exited with code 3. I have no problem running javac on command prompt C:\Users\Ertan>javac Usage: javac <options> <source files> where possible options include: -g Generate all debugging info -g:none Generate no debugging info -g:{lines,vars,source} Generate only some debugging info -nowarn Generate no warnings -verbose Output messages about what the compiler is doing -deprecation Output source locations where deprecated APIs are used -classpath <path> Specify where to find user class files and annotation processors -cp <path> Specify where to find user class files and annotation processors -sourcepath <path> Specify where to find input source files -bootclasspath <path> Override location of bootstrap class files -extdirs <dirs> Override location of installed extensions -endorseddirs <dirs> Override location of endorsed standards path -proc:{none,only} Control whether annotation processing and/or compilation is done. -processor <class1>[,<class2>,<class3>...] Names of the annotation processors to run; bypasses default discovery process -processorpath <path> Specify where to find annotation processors -parameters Generate metadata for reflection on method parameters -d <directory> Specify where to place generated class files -s <directory> Specify where to place generated source files -h <directory> Specify where to place generated native header files -implicit:{none,class} Specify whether or not to generate class files for implicitly referenced files -encoding <encoding> Specify character encoding used by source files -source <release> Provide source compatibility with specified release -target <release> Generate class files for specific VM version -profile <profile> Check that API used is available in the specified profile -version Version information -help Print a synopsis of standard options -Akey[=value] Options to pass to annotation processors -X Print a synopsis of nonstandard options -J<flag> Pass <flag> directly to the runtime system -Werror Terminate compilation if warnings occur @<filename> Read options and filenames from file C:\Users\Ertan> My version of "javac.exe" is located at C:\Program Files\Java\jdk1.8.0_60\bin\javac.exe I have seen some people having exact same error on my searches. No solution that I could find so far. I am planning to setup a virtual machine to install fresh copy of Delphi 10.3.3 and test if working on it. Before I do that I wonder if there is something I need to check. Thanks & regards, Ertan
-
Hello, I am using Delphi 10.3.3. I would like to read caller number right at the time phone is ringing. Edit: I am looking for a solution for Android platform only. Using google, I have found a lot of samples from past about reading call logs, placing calls, etc. I could not find how I should be reading caller number right at the time of a call. Any help is appreciated. Thanks & regards, Ertan
-
Hello everyone. I am happy to see that the delphi community is alive! I love delphi and when I wanted to write a game I was told Unity is the way to go. So I wrote a game in unity but I hate it. I would like to make a game in Delphi. However, I hit a snag... I can't find information online on about how can I save progress and use leaderboards using google play services. On Unity it was pretty easy, but like I have said, I can't stand C# and Unity its not human friendly. At least not to my taste. Can anyone please help me with a short tutorial or some sample code? I would greatly appreciate it. Thank you.
- 4 replies
-
- android
- google play services
-
(and 3 more)
Tagged with:
-
Hi I have an issue with an app crashing on some Android devices. The devices on which the app crashes are some Android 9 devices; although on other Android 9 devices the app works fine. The crash happens ONLY when the app is connected to the internet. When I disable the Wi-Fi, it doesn't crash. To test it, I run the app with the Wi-Fi disabled, it starts up fine. While the app is running I enable the Wi-Fi and the app crashes after a couple of seconds without me doing anything. I've attached the Android log file if anyone could help me point out where the problem is. Tx log.txt
-
Support for 64-bit Android App Development in DAC for Delphi
Jordan Sanders posted a topic in Delphi Third-Party
Devart, the leading provider of database management software and developer tools, released the new version of its data access components for Delphi. The key feature of the recent update is support for 64-bit Android app development, following the release of RAD Studio 10.3.3 that includes a new Delphi compiler for the ARM platform. The update will be of particular use due to the fact that starting August 1, 2019, all the apps published on Google Play need to support Android devices with 64-bit architectures. The release also includes such key enhancements as: The support of new versions of RDBMS: PostgreSQL 12 in PgDAC, Oracle 19c in ODAC, and InterBase 2020 in IBDAC. The support of the latest Lazarus version 2.0.6, a free IDE for rapid application development using the Free Pascal compiler. MySQL and PostgreSQL data providers now support OpenSSL 1.1, a library that implements TLS and SSL protocols to secure communications between a client and a server. TLS 1.2 was supported in Direct mode in SDAC. It is a security protocol that provides privacy and data integrity for client-server applications that exchange data over a network. Also, the 6-field limitation in the trial version of data access components for macOS and Linux was removed. Users now can execute the test code against a large database to make sure everything works as intended. Learn more about Data Access Components for Delphi on the Devart official website - https://www.devart.com/dac.html About Devart Devart is one of the leading developers of database tools and administration software, ALM solutions, data providers for various database servers, data integration and backup solutions. The company also implements Web and Mobile development projects. For additional information about Devart, visit https://www.devart.com/ -
tetherprofile ResourceReceived OK on Android v5 device but not on Android v7 device
GreatDayDan posted a topic in Cross-platform
I have an android app that works fine on an Android v5 but not on v7 or v9. On the V5 device, the ProfileResourceReceived is triggered but not on the v7 or v9 device. What changed? Is there a fix? Delphi CE 10.3.2 The mobile app asks for the database: This works on all versions. procedure TfrmMMMP.Get_Database; begin TabControl1.ActiveTab := tbtmhome; tetprof.SendString(tetMan.RemoteProfiles[FRemProfIndex], 'Get_Database', 'Get_Database'); end; The Server gets the db and streams it to the app: This is a VCL app. It catches the request from all versions. procedure TfrmMMMPServer.thrprofServerResourceReceived(const Sender: TObject; const AResource: TRemoteResource); var ms: TMemoryStream; fs: TFilestream; LStream : TMemoryStream; begin if (AResource.Hint <> '') and (AResource.Hint <> 'ClientLog') then ToTheLog('> AResource.Hint: ', AResource.Hint); if AResource.Hint = 'Get_Database' then begin if Connected then begin ms := tmemorystream.Create; ms := dmMMMPServerVCL.GetDbAsStream; ms.Position := 0; thrprofServer.SendStream(thrmanServer.RemoteProfiles.First, 'Here_TheDB', ms); end The app catches the Response and populates a ListBox: This does not trigger on Ver 7 or Ver 9. procedure TfrmMMMP.tetProfResourceReceived(const Sender: TObject; const AResource: TRemoteResource); begin if AResource.Hint = 'Here_TheDB' then begin DoStreamTheDb(AResource); DoFillLB(lbxRecipeNames); tabcontrol1.ActiveTab := TbtmRecipes; end -
Today I installed Android Nougat in VMWare and then connected the IDE to the VM via adb and it shows as a device in the "Target" branch. When I run/debug an empty FMX project the IDE deploys everything correctly and then it launches the app. Here is where the problems appears. The app loads, I can see the splash screen and then it crashes. I have tried with different SDKs but the problem is there. Anyone any ideas where to look at for the problem? I am keen on making it working. The whole process is way much faster than with a physical device.
-
Hi, I create a new FMX app, select Android as the target platform and the device, I hit Run (and/or with Debug) and all works fine. The app is deployed correctly to the device and launched. Then, I save the form and again all works fine. Then, I save the project and then the IDE can not build/deploy it. I get the following message: [PAClient Error] Error: E2312 C:\****\AndroidManifest.xml:20: error: No resource identifier found for attribute 'resizeableActivity' in package 'android' Even if I rename the project back to Project1, it does not work. After inspecting the manifest files, the IDE adds this line android:resizeableActivity="false" which is not added when I run a new project. Now, it appears that the AndroidManifest.template includes the same line but it doesn't cause problems until I save a project. If I delete the line from the template, all works fine. Anyone knows why that line generates an error? Thx
-
Hello, I am using Delphi 10.3.2 and I have that project I need to use APDU commands communicating a Mifare card. I do not know java language. However, Android seems to have support for APDU commands for a very long time (like old versions such as 4.4 has that support). I have found following document: https://developer.android.com/reference/android/nfc/tech/IsoDep My problem is, I do not know APDU command use is possible with Delphi 10.3.2 on Android. I have found only one blog about RFID with Delphi FMX and that is for communicating smart tags. Unfortunately not providing help on APDU usage. http://blong.com/articles/delphixe7nfc/nfc.htm I can't find any other information about Delphi FMX and APDU. I appreciate any help. Thanks & regards, Ertan
-
[Fmx] CrossPlatform best-practices upgrading 10.3.1 to 10.3.2
Rollo62 posted a topic in Cross-platform
Dear all, I'm still upgrading my older projects from 10.3.1 to 10.3.2, and try this as always as sensitive as possible. But it turns out that too many libraries under Android would have been changed. This is my orginal project loaded in 10.3.2 So I'm better off to create a complete new, empty project , and reset all my old values from 10.3.1 step-by-step. In 10.3.2 the libraries looks like this So I try to figure out what would be the best way to make such upgrades, which can be very tricky these days. I know @Uwe Raabe and his ProjectMagician, thanks for that nice tool. There are also OptionSets, MigrationTool, etc., many ways to successfully reset or completely destroy your .dproj files. I want to consider the basic steps here, and hope to get some feedback, how this can be done best (without expecting strange side-effects) in a complex world. Steps to upgrade: Backup your orignal project Create a new, empty multidevice application Remove the Mainform (Unit1) and other from the main form, this will be reset later from the older project. Save and overwrite the Project file to the same .dproj !! Make global settings in Project options\All configurations first, and try to keep minimal changes from there only In later separations of Debug or Release, these changes will be done in the respective configurations later. Adding special libraries, frameworks, etc. needed for the app Adding special ressources/images needed to deploy with the app Setup Search path, version no., bundle identifiers, entitlements, permissions, icons, etc., which shall be global for the whole app Setup special settings, like debug/release store API's, Google maps debug/release API's, etc. in the respective configurations Fixes and workarounds Add the old units and datamodules (I try to minimize these in my projects, so I usually have to add only one main form), and try to restore the old project state Refine and check the settings, and ready to debug, test and deploy This way I evaluated for myself that I have best control over all settings (and there are many which could go wrong in the cross-platform world). Is there probably a better way to automate this process ( ! but please consider that many features might have large incompatibilities from 10.3.1 to 10.3.2), I don't really trust automatisms when it comes to such sensitive data, and when too many changes are there. Do I miss something, is there a more easy "migration tool" out there ? Would be great to hear how you do this usually, and which tools you use. -
How can I select a picture from Android gallery and get the path + GPS data (lat & long)? I get a path to a cached picture, without GPS data. /data/user/0/com.embarcadero.Project1/cache/IMG_20190319_[...].jpg The original picture is in /DCIM/Camera/ and has another name. procedure TForm2.FormCreate(Sender: TObject); begin TMessageManager.DefaultManager.SubscribeToMessage(TMessageReceivedImagePath, DidReceiveBitmap); end; procedure TForm2.TakePhotoFromLibraryAction1DidCancelTaking; begin // end; procedure TForm2.TakePhotoFromLibraryAction1DidFinishTaking(Image: TBitmap); begin Image1.Bitmap := Image; end; procedure TForm2.DidReceiveBitmap(const Sender: TObject; const M: TMessage); var LMessage: TMessageResultNotification; LImagePath: String; begin if M is TMessageReceivedImagePath then begin LMessage := TMessageResultNotification(M); LImagePath := (M as TMessageReceivedImagePath).Value; // <--- '/data/user/0/com.embarcadero.Project1/cache/IMG_20190319_[...].jpg' if LMessage.RequestCode = TJFMXMediaLibrary.JavaClass.ACTION_TAKE_IMAGE_FROM_LIBRARY then begin GetEXIF(LImagePath); Image2.Bitmap.LoadFromFile(LImagePath); end; end; end; procedure TForm2.GetEXIF(const AFileName: String); var LEXIF: JExifInterface; LLatLong: TJavaArray<Single>; begin LEXIF := TJExifInterface.JavaClass.init(StringToJString(AFileName)); Memo1.Lines.Add('File: ' + AFileName); LLatLong := TJavaArray<Single>.Create(2); if LEXIF.getLatLong(LLatLong) then begin Memo1.Lines.Add('Latitude: ' + LLatLong.Items[0].ToString); Memo1.Lines.Add('Longitude: ' + LLatLong.Items[1].ToString); end; LLatLong.Free; end;
-
ANN: Gnostice Document Studio Delphi v19.1 released
Girish Patil posted a topic in Delphi Third-Party
Gnostice is pleased to announce the release of Gnostice Document Studio Delphi 19.1.2875. This version includes the Bookmarks Navigation Pane, improved document printing features, and various bug fixes for FMX and VCL Document Viewers. This version also includes fixes for Report Export Interfaces. To know more about Gnostice Document Studio Delphi, please browse to: https://bit.ly/2nKIeDl For the full release notes, please have a look at the following page: https://bit.ly/2vRt2sq To download the trial version, please browse to: https://bit.ly/2zz06Xn Please mail us at support@gnostice.com, if you have any questions. Thank you, The Gnostice DevTools Team https://www.gnostice.com -
I am porting a Win32 with FB app to Android. When the datamodule uses FireDAC.Phys.FB the Linker fails with [DCC Error] E2597 c:\\program files (x86)\\embarcadero\\studio\\20.0\\lib\\Android\\Release\libibtogo.a(fun.o): In function `FUN_evaluate': /builds/InterBase_ANDROID_TOGO_IB2017/super/jrd/fun.c:277: undefined reference to `abs' c:\\program files (x86)\\embarcadero\\studio\\20.0\\lib\\Android\\Release\libibtogo.a(fun.o): In function `FUN_resolve': /builds/InterBase_ANDROID_TOGO_IB2017/super/jrd/fun.c:947: undefined reference to `abs' Is this because Android does not support FB? Can I use Interbase? Is there a solution for this? Thanks...Dan'l
-
Why does my Android application, compiled with Delphi Rio, no longer work?
Dalija Prasnikar posted a topic in Tips / Blogs / Tutorials / Videos
Is Delphi Rio broken? NO.... Why does my Android application, compiled with Delphi Rio, no longer work? -
Delphi 10.3 | Android : registerIntentAction -> java.lang.UnsupportedOperationException
WestyOz posted a topic in Cross-platform
It appears that when using Delphi 10.3 and targeting the latest Android API (26) the following call no longer works: MainActivity.registerIntentAction(TJIntent.JavaClass.ACTION_VIEW); The exception is raise 'java.lang.UnsupportedOperationException'. This was required when facilitating the handling the opening of an associated file using an <intent-filter> within the AndroidManifest.template.xml. The full code sequence is as follows: // Register the type of intent action that we want to be able to receive. // Note: A corresponding <action> tag must also exist in the <intent-filter> section of AndroidManifest.template.xml. MainActivity.registerIntentAction(TJIntent.JavaClass.ACTION_VIEW); TMessageManager.DefaultManager.SubscribeToMessage(TMessageReceivedNotification, HandleActivityMessage); I've had the same challenge when running the AndroidIntents project from the supplied Samples. Has anyone else encountered this and managed to solve for it? -
Finally ControlType of TEdit will arrive to Android apps, it will solve a lot of problems with text, specially with RTL languages. http://delphi.org/2018/11/android-z-order-native-controls-and-10-3-rio/
- 6 replies
-
- delphi rio
- z-order
-
(and 2 more)
Tagged with:
-
Hi, I wanted to see other people's experiences with debugging in Android. How does it work for you? Actually, I've never managed to make it work . The debugger never gets connected to the right port, etc. etc. Now I've got some code that does not work and I comment/uncomment code to find the problem. There must be surely an easier way. I use a real Android tablet connected to a VM, if it matters ????
-
ANN: Gnostice Document Studio Delphi version 2018 R2 Build 18.2.2831 released
Girish Patil posted a topic in Delphi Third-Party
Gnostice Document Studio Delphi version 2018 R2 Build 18.2.2831 released with C++Builder support, new SKUs and more. Highlights in this release: - Marketing name changed to Gnostice Document Studio Delphi. This has no impact on code. - SKUs have been reorganized to cater to popular demands. SKUs based on popular demand. - Essential [$250], Professional [$450], and Ultimate [$600] are the new SKUs. - Essential edition replaces ReportExport edition. Customers of ReportExport edition with an active subscription get a free upgrade to Essential. - Ultimate edition includes all features of Professional + 1 full license of Gnostice StarDocs Document Server Viewer edition. - Support for C++Builder. - PDF rendering enhancements and much more. For the full release notes, please have a look at the following page: https://bit.ly/2vRt2sq To know more about Gnostice Document Studio Delphi, please browse to:https://bit.ly/2nKIeDl https://bit.ly/2nKIeDl To download the trial version, please browse to: https://bit.ly/2zz06Xn Please mail us at support@gnostice.com, if you have any questions. Thank you, The Gnostice DevTools Team https://www.gnostice.com #PDF #Delphi #FireMonkey #DocumentStudio #Windows #macOS #iOS #Android