Jump to content

Search the Community

Showing results for tags 'android'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Delphi Questions and Answers
    • Algorithms, Data Structures and Class Design
    • VCL
    • FMX
    • RTL and Delphi Object Pascal
    • Databases
    • Network, Cloud and Web
    • Windows API
    • Cross-platform
    • Delphi IDE and APIs
    • General Help
    • Delphi Third-Party
  • C++Builder Questions and Answers
    • General Help
  • General Discussions
    • Embarcadero Lounge
    • Tips / Blogs / Tutorials / Videos
    • Job Opportunities / Coder for Hire
    • I made this
  • Software Development
    • Project Planning and -Management
    • Software Testing and Quality Assurance
  • Community
    • Community Management

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Delphi-Version

Found 127 results

  1. bzwirs

    Unsupported Pixal Format

    Delphi 11.2 I use Winsoft Pdfium for FireMonkey to create a PDF that includes a graphic (png saved to a SQLite table field). The graphic is inserted into the pdf document (as the document is being created) with the following code: Sig := tMemoryStream.Create; try MarafillerDM.EMUInvQrySIGNATURE.SaveToStream(Sig); var aBitMap := FMX.Graphics.TBitmap.Create; try aBitMap.LoadFromStream(Sig); MarafillerDM.FPdf1.AddPicture(aBitMap,18,135,230,80); finally aBitMap.Free; end; finally Sig.Free; end; Up until a couple of weeks ago this worked for both Windows and Android without any problems but now I get an 'Unsupported Pixal Format' error from the Winsoft AddPicture procedure - but only on Android devices (Samsung Tab 6 Lite). On Windows it still works fine. Haven't changed anything in my Delphi environment (updates etc) between it working and not working. Has anyone else experienced this. Would appreciate any help with this issue. Bill Zwirs
  2. Hi. As the title says, I cannot debug any Delphi FMX application on my Android phone. I'm using the latest Delphi version (Alexandria, Update 1), and my phone is Samsung A52s. When I try to run in debug mode, the app installs, a black screen shows up on the phone, and RAD studio layout transforms to Debug layout. Two outcomes may happen after that: I get the exception Stop(17), which leads me to CPU view and a call stack containing only "clone" and "bionic_clone", The app stays entirely black, and either nothing happens or RAD studio disconnects after a minute of being in the debug mode. On further investigation, I realized that if I set a breakpoint on Application.Initialize, it is never triggered. Also, if I set a breakpoint while the debugger is attached, RAD studio freezes for ~10 seconds, and after it unfreezes the debugger disconnects (while the app is still running on the phone, still as a black screen). Useful info: The app runs completely normal when opened without the debugger. I am able to debug blank apps with Android Studio. I tried using a different SDK version. I have another phone, Samsung A5 (2017) that can be used with the debugger (but it randomly restarts when debugging, hence unusable). A52s uses Android 12, while A5 is Android 8 (Oreo). I also attached logs from logcat, that are filtered for anything that matches with the app name 'com.embarcadero.BetterProgress'. I don't know what other information may be of use, so if I missed something feel free to write it in the comments. Any idea is appreciated! android-log.txt
  3. Hi. I am making Android app, and i add Android Service to project, guided by this video: Code in the Android Service: unction TDM.AndroidServiceStartCommand(const Sender: TObject; const Intent: JIntent; Flags, StartId: Integer): Integer; begin Result := TJService.JavaClass.START_STICKY; end; Calling from main project: FService : TLocalServiceConnection; FService := TLocalServiceConnection.Create; FService.StartService('F'); But when i lainch my application, it is crashing at once at start. When i launch my app under debugging, Delphi writing me: Full text on the attachment. Also, debugger get this code: I am using Delphi 10.4 CE.
  4. Hi All! I have a joystick that is connected to my phone. When my application is running a can see than joysticks buttons are pressing. But when the phone screen is locked, I don't see notifications about it in my app. What can I do to receive joystick button press in my application when the screen is locked? Receivers code procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState); begin inc(i); Memo1.Lines.Add('i=' + IntToStr(i) + '; Key=' + IntToStr(Key)); end; The result of the application, photos of joysticks and the source code are in the attachment. KeyCodeReceiver.7z
  5. I have old app in Android. I have used uniDac to connect to sqlite database. The database is encrypted using leAES256 method. FD cannot connect to it. I need to convert database for FD. But when I use both of these in the app, Delphi gives an error : sqlite3.c:(.text+0xb5e8): multiple definition of `sqlite3_aggregate_context' (And many other errors) I know the reason for the error but how to convert the database when I can't use both of them?
  6. I use delphi 11.2 in my ANDROID app, i must handling a javascript function's result, it's convert javasciprt to pascal is very hard to me. my way: run javascript in TWebrowser and get result, js result is OK, but, how can i get return value from TWebrowser? My thoughts: 1,execute js throught some library eg: ScriptGate? ScriptGate run javascript Error in delphi 11 . 2,modify TWebrowserm, add javascript callback feature? test_javascript.zip
  7. bzwirs

    TAlphaColorRec in Android

    Delphi 11.2 Winsoft PDFium In app for Windows and Android I am using PDFium to create an invoice as a PDF. Included In the PDF are 2 lines of text that are colored red and one rectangle filled with color blue. Using PDFium I need to use TAlphaColorRec.Red and TAlphaColorRec.Blue to display the color on the PDF. This works fine on Windows but when compiled for Android the text colour shows as blue and the rectangle fill color is red (ie. opposite of the selected colors). Reversing the colors fixes the problem for Android but would appreciate if someone can please explain why this would happen. Thanks Bill Zwirs
  8. Issue/Problem: when deploying an app to android that has the: (camera, json, or barcode components on a form) the app starts up with a black screen flame and hangs and closes down. Has anyone tried the trial version of TMS FNC WX Pack Android? -- link: https://www.tmssoftware.com/site/tmsfncwxpack.asp I have been having a difficult time with the trial version v1.5.1.0 (via Getit) working on my smartphone with Android 10, using Delphi 11.2 Alexandria Professional under Windows 7 and also Windows 10 laptops. The trial version states to set it in release mode (For mobile device deployment, the trial version supports deploying in release mode only) which I have done, but after the app is deployed I still have a black screen with the Delphi flame and it eventually closes whenever click out of the screen. I am hoping that someone with similar experience knows how to resolve this issue. I would really appreciate the help. Thank you.
  9. Hi there, I was experimenting with the Android.template.xml, to use different API-related selections, to searate old and new Bluetooth settings. Some recommendations in the web point to this nice and clean solution, so separate APIs in the manifest: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="..."> <uses-permission android:name="android.permission.BLUETOOTH" android:maxSdkVersion="30" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" android:maxSdkVersion="30" /> <uses-permission android:name="android.permission.BLUETOOTH_SCAN" android:usesPermissionFlags="neverForLocation" /> <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" android:maxSdkVersion="30" /> <application ... /> </manifest> Using the android:maxSdkVersion and the android:usesPermissionFlags="neverForLocation" identifier would allow an easy control over different versions. Unfortunately this didn't work in my current setup, maybe I have to rry again with a clean project, but I see a failure "attribute neverForLocation is not available". This seems that targeting to API31 is needed, and I'm still under API30, in its D11 default setup. But I'm not sure why this message pops up, and is not simply ignored, if there is an unknown attribute. Probably this needs linked somehow to the API31, and API30 throws exception. To be rescued, maybe the android:maxSdkVersion might work under different versions in different configurations, to make Delphi compatible with several API's at the same time in one manifest ? To be clear, I'm not talking about the targetSdkVersion here, but if someone could make use of the android:maxSdkVersion attribute already. I'm curious if somebody has get this working as expected under Delphi. Beside that, what would be the best way to handle BluetoothLE under API30, to be compatible with old and new devices ?
  10. Windows 7 Home 64bit Delphi XE7 Professional update 1 with FireDAC and Mobile add-on Indy version 10.6.1.518 Android version 10, (on smartphone) Android versions 4.4.4, and 4.4.2 (both on tablets) Issue/Problem: When I launch the app on Android, and click on the [Submit] button, the app shuts down when it tries to access the idhttp section here: idHttp1.get(url_address); It works fine under Windows FMX and VCL, just not Android. Can someone please help me resolve this? Thank you. History: Hi. I have been successfully creating small utility apps on my android devices (Galaxy S10+ (android 10) and tablets (android 4.x.x)) for the last 8 years. I've been playing around with a new windows project using API through OMdbAPI (an IMDB knock-off) to get quick movie/tv series info. The API is free for 1000 requests. I love it. It works well. Usage is simple, using the following -> [https://www.omdbapi.com/?t=Contact&apikey={8-dig-key-code}] as it will give back a JSON string (below), then I parse it to get back a two-column detail to visualize the data better. Later I plan to fine-tune it and display only certain info from it. Right now, I am simply debugging it on Windows 7 and Android. {"Title":"Contact","Year":"1997","Rated":"PG","Released":"11 Jul 1997","Runtime":"150 min","Genre":"Drama, Mystery, Sci-Fi","Director":"Robert Zemeckis","Writer":"James V. Hart, Michael Goldenberg, Carl Sagan","Actors":"Jodie Foster, Matthew McConaughey, Tom Skerritt","Plot":"Dr. Ellie Arroway, after years of searching, finds conclusive radio proof of extraterrestrial intelligence, sending plans for a mysterious machine.","Language":"English, Spanish, German, Russian","Country":"United States","Awards":"Nominated for 1 Oscar. 14 wins & 32 nominations total","Poster":"https://m.media-amazon.com/images/M/MV5BYWNkYmFiZjUtYmI3Ni00NzIwLTkxZjktN2ZkMjdhMzlkMDc3XkEyXkFqcGdeQXVyNDk3NzU2MTQ@._V1_SX300.jpg","Ratings":[{"Source":"Internet Movie Database","Value":"7.5/10"},{"Source":"Rotten Tomatoes","Value":"68%"},{"Source":"Metacritic","Value":"62/100"}],"Metascore":"62","imdbRating":"7.5","imdbVotes":"274,457","imdbID":"tt0118884","Type":"movie","DVD":"16 Dec 1997","BoxOffice":"$100,920,329","Production":"N/A","Website":"N/A","Response":"True"}
  11. In Delphi 10.4, I was able to get a listing of files in an Android 11 device's shared storage. In Delphi 11.2, with necessary permission set (either programmatically or on the device), TDirectory.GetFiles() is returning an empty list (ie. zero entries). TDirectory.GetDirectories() is working correctly, and using TFile.Exists() with a filename which I know to be present returns true. But, if I try to open that file with, for instance, TFile.ReadAllText(), access is denied. Any suggestions? This is an example program which fails in Delphi 11.2: unit test11main; interface uses System.Types,System.Classes,system.sysUtils,system.IOUtils,system.Permissions, {$IFDEF ANDROID} Androidapi.Helpers, Androidapi.JNI.JavaTypes, Androidapi.JNI.Os, {$ENDIF} FMX.Types,FMX.Forms,FMX.Dialogs; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private fOK:boolean; procedure PermissionsResult(Sender: TObject; const APermissions: TClassicStringDynArray; const AGrantResults: TClassicPermissionStatusDynArray); end; var Form1: TForm1; implementation {$R *.fmx} procedure Tform1.PermissionsResult(Sender: TObject; const APermissions: TClassicStringDynArray; const AGrantResults: TClassicPermissionStatusDynArray); var n:integer; begin if length(AGrantResults)>0 then for n:=0 to length(AGrantResults)-1 do if not (AGrantResults[n] = TPermissionStatus.Granted) then fOK:=false; end; procedure TForm1.FormCreate(Sender: TObject); var DataDir:string; p:Tarray<string>; LList: TStringDynArray; begin fOK:=true; { if I omit the next two lines and manually set permissions on the Android device it still does not work} p:=[JStringToString(TJManifest_permission.JavaClass.READ_EXTERNAL_STORAGE), JStringToString(TJManifest_permission.JavaClass.WRITE_EXTERNAL_STORAGE)]; PermissionsService.RequestPermissions(p,PermissionsResult,nil); if fOK then begin DataDir := TPath.GetSharedDocumentsPath; showmessage(DataDir); //correctly displays /storage/emulated/0/Documents Llist:=Tdirectory.GetFiles(DataDir); showmessage(inttostr(length(Llist))); //returns zero when run in Delphi 11.2 end else showmessage('permission refused'); end; end.
  12. I am trying to work out some issues with compiling certain components and need to list out all installations that pertain to Android development. I use the Android SDK tool to install various Android files. Although I can compile apps and deploy them to my Android device, I believe that I have messed things up pretty well, I think. F:\Users\Public\Documents\Embarcadero\Studio\15.0\PlatformSDKs\adt-bundle-windows-x86-20131030\sdk\tools\ --> Android Tools And I want to list out the same details seen below but in "text" format (so that I can post it to someone). I don't want to post it as an image like the below, plus also because there are a lot more info not seen in this image below and would require multiple images to post, and it would be better to post a text file and send that off to the person. Is there a command line tool that I can use to obtain the same text and layout? I can clean it up to look in a similar layout as in the image just above if I have to. Thanks.
  13. Hello. To get string versionName value of field inside <manifest> key, in AndroidManifest.xml file, I use this code: function GetFileVersionName: string; var PackageManager: JPackageManager; PackageInfo : JPackageInfo; Begin PackageManager:= SharedActivity.getPackageManager; PackageInfo := PackageManager.getPackageInfo(SharedActivityContext.getPackageName, TJPackageManager.JavaClass.GET_ACTIVITIES); Result := JStringToString(PackageInfo.versionName); End; If the filed is in a meta-data key, inside <activity> section, like this... <meta-data android:name="productName" android:value="HelloWorld" /> how can change above code to retrive it? Thanks.
  14. Prior to 11.2, I used Android Monitor to access Log.d messages from my Android apps. Monitor appears to have been deprecated, and so I have attempted to access logging through adb logcat. While this returns a large amount of logs, copying the output and performing a search for logs from my app returns nothing. I've also attempted adding parameters to filter on the app itself, such as: adb -d logcat <app name>:I *:S which returns: --------- beginning of main --------- beginning of system But nothing else. I have also tried Device Lens 1.3.0 (mentioned by Dave Nottage here), which detects the Android device, displays all processes & allows a screen capture, but clicking the play icon to display notifications only shows one message, and that's it. I had no problems accessing logs using this device and app with the previous version of RAD. I would be very grateful for any help with this matter, thanks in advance.
  15. MikeZ87

    Save MapView image to bitmap

    Greetings, I have a TMapView component on my firemonkey (android) form. It gets the map image nicely, and I can scroll, zoom in, etc... I need to be able to save that mapview image to storage on an android app, and I'm having no luck. I can't even copy it to another TImage component. Can anyone help me with this? - How can I save the mapview image to local storage on the android? - How can I copy the mapview image to another image component? I've tried things like image1.assign(mapview1.MakeScreenShot) to copy, and MapView1.MakeScreenShot.SaveToFile(filename), but neither of those work. (Assign doesn't do anything, and SaveTo results in an error. Any help would be appreciated. Thanks!
  16. Hi, Updated to Delphi 11.2 the other day and now unable to install apk file to android device (Tab6 Lite). Compile gives me the following error Have two android apps and both give the same error, Can someone please help me understand what the problem is. Any help would be appreciated. Thanks in advance Bill Zwirs
  17. Milan Vydareny

    Indy, OpenSSL, DataSnap on Android

    The difficulties when trying to use OpenSSL filters on a DataSnap application with an Android client have numbers of entries in various forums that go back a number of years. To summarize the problem: 1. Create a DataSnap server that specifies a filter of RSA, in my case using Delphi 11 Update 2, running on a Windows server as a service. 2. Create a DataSnap client that is deployed to an Android device, in my case a Samsung SD-9 with an ARM64-v8a instruction set running Android 10 3. The client application crashes because it is unable to load a required OpenSSL module. I have tried a number of solutions that are discussed in various places but nothing works for me. My question is: Does anyone know of a RECENT posting that provides a workable solution to getting an RSA filter to work with DataSnap/Indy/Firemonkey on an Android device? My current understanding that the root cause of the problem is probably the failure of Indy to remain current with Google's erratic development habits, that has deprecated OpenSSL in favor of a branch called Boring. Has this been addressed effectively by anyone? If not, are there any plans to do so? Thanks in advance, Milan
  18. at3s

    Rating an android application

    I want to add a feature so user shall be able to rate my android application - set a range of stars. Does someone can show me a sample code how to do this?
  19. [See 2nd Post on Solution] I keep hitting this road-block. There no source code it's pointing to. It's just pointing to CPU assembly code. It's always the same segment fault. How do I trace it down? The segment fault happens when it gets around 33 or 34 files of ran*.txt. There's plenty of space left to create hundreds more files, but it likes to stop around 33 or 34 on the ran*.txt Tfile.copy? I added true to the end of it... but the overwrite parameter didn't help. Error: BFD: C:/Users/alt/Documents/Embarcadero/Studio/Projects/Filler/Android/Debug/FSP/debug/linker: don't know how to handle section `.relr.dyn' [0x 13] Process FSP.apk (4871) [Switching to Thread 5055] Process FSP.apk (4871) First chance exception at $BD9F069E. Exception class Segmentation fault (11). Process FSP.apk (4871) BD9F069E F8525023 ldr.w r5, [r2, r3, lsl #2] BD9F06A2 BF08 it eq BD9F06A4 2608 moveq r6, #8 BD9F06A6 4281 cmp r1, r0 BD9F06A8 EA460605 orr.w r6, r6, r5 BD9F06AC F8426023 str.w r6, [r2, r3, lsl #2] BD9F06B0 D1EE bne.n 0xbd9f0690 call stack thread --> :BD9F069E ??() :BD9A21A6 ??() :BD9A21A6 ??() it doesn't tell me where the error is... but I suspect it to be in this procedure because it's in the middle of creating the ran*.txt files: Global variables: var Form1: TForm1; FileDirectory, RandomFileToCopy: String; FilePermissions, DeleteFiles, DeleteInProgress: boolean; DeleteDirectoryList: TArray<system.string>; MaxFreeSpace: Int64; debugLines: TStrings; dButtonPreviousIsPressed: boolean; breakit: boolean; copydataActive: boolean; const FillerDiectoryNameConst = 'FILLER'; Procedure that I believe to be causing the segment fault: procedure TForm1.CopyData(); var DriveStr : String; FileNameCounter : integer; FolderCounter : integer; FolderName : string; FolderArea : string; RandomFileName : String; begin copydataActive := true; RandomFileToCopy := ''; FileNameCounter := 0; FolderCounter := 0; DriveStr := FileDirectory + TPath.DirectorySeparatorChar; RandomFileToCopy := DriveStr + 'random.txt'; // create random file //CreateNewRandFile(64000000); //64 mb file CreateNewRandFile(640); //640 file for testing purposes inc(FolderCounter); FolderName := 'rand' + IntToStr(FolderCounter); FolderArea := FileDirectory + TPath.DirectorySeparatorChar + FolderName; LabelLine2.Text := ''; while DirectoryExists(FolderArea) = true do begin inc(FolderCounter); FolderName := 'rand' + IntToStr(FolderCounter); FolderArea := FileDirectory + TPath.DirectorySeparatorChar + FolderName; LabelLine1.Text := 'Folder: ' + FolderName; if breakit = true then exit; end; try TDirectory.CreateDirectory(FolderArea); dString('CreateDirectory:'+FolderArea); except on E : Exception do begin dString('CreateDirectory(FolderArea):'+E.ClassName+' error: '+E.Message); copydataActive := false; exit; end; end; while CheckDiskSize(FolderArea) > 0 do begin if breakit = true then exit; RandomFileName := FolderArea + 'ran' + IntToStr(FileNameCounter) + '.txt'; FileNameCounter := 0; while FileNameCounter<126 do begin inc(FileNameCounter); RandomFileName := FolderArea + TPath.DirectorySeparatorChar + 'ran' + IntToStr(FileNameCounter) + '.txt'; try //if FileExists(RandomFileName) = true then DeleteFile(RandomFileName); LabelLine1.Text := 'Creating: ran' + IntToStr(FileNameCounter) + '.txt'; dString('Create RandomFile:'+RandomFileName); sleep(50); //dString writes to a file log file. TFile.Copy(RandomFileToCopy, RandomFileName, true); Except On E: Exception Do begin dString('TFile.Copy(RandomFileToCopy, RandomFileName):'+E.ClassName + ' ERROR: ' + E.Message); breakit := true; //break on error end; end; if breakit = true then exit; end; while DirectoryExists(FolderArea) = true do begin inc(FolderCounter); FolderName := 'rand' + IntToStr(FolderCounter); FolderArea := FileDirectory + TPath.DirectorySeparatorChar + FolderName; LabelLine1.Text := 'Folder: ' + FolderName; if breakit = true then exit; end; // all else fails... and it still is true... exit if DirectoryExists(FolderArea) = true then begin copydataActive := false; exit; end; try TDirectory.CreateDirectory(FolderArea); dString('CreateDirectory:'+FolderArea); except on E : Exception do begin dString('CreateDirectory(FolderArea):'+E.ClassName+' error: '+E.Message); copydataActive := false; exit; end; end; end; copydataActive := false; end;
  20. Hi, I discovered on my test smartphone (samsung) that I can change the display mode of the virtual keyboard: Put it in a "floating keyboard" mode. This solves the problem since you can move the keyboard so that it no longer covers the input field. 3 questions arise: 1. Does this possibility exist on all Android smartphones and/or on all versions of the Android OS? 2. Question 1 for iOS smartphones 3. Is it possible to force this "floating keypad" mode via programming? Thank you for your feedback
  21. I am tackling my first Android app (Firemonkey) using RAD Studio. It is supposed to be a mobile version of a Windows VCL app I already did (language: Pascal). It has to access the same client dataset files (.xml) that the Windows app uses, which are stored in a local Windows network share. I have Googled and found all sorts of esoteric references to JCIFS, Samba, etc. I have got as far as installing JCIFS-1.3.19.jar under the Libraries folder in my Android Target node in Project Manager. So how do I actually use this in my app? Thanks in advance for any help you can give me
  22. I'm using Alexandria (RAD Studio 11.1) but when I try to configure my Android 64 bit project in the Options > Building > Delphi Compiler > Compiling options. After select "All configurations - Android 64-bit platform" as the active target, I don't found in the "Other options" the "Generate Android App Bundle file (arm + arm64)". In the online manual at this link: https://docwiki.embarcadero.com/RADStudio/Alexandria/en/Submitting_Your_Android_App_to_Google_Play there is also an image showing this option, but in my delphi it is not present! This option instead is present in 10.4.1. Without this option it is not possible to have an .aab file to upload to the Google Play Console. Can someone help me?
  23. Vanar

    AdMob in Delphi11

    Hi all! I'm looking for an implementation of AdMob ads under Delphi 11 on android The implementations for Delphi 10.4 and below (such as https://github.com/ersanyakit/FMX.InterstitialAd.Android, AdMobExtra...) don't work! Share if anyone has!!!
  24. I have a customer who can't install our Android app on his Samsung Galaxy Tab A. The Play Store says the device isn't compatible with this version. I don't understand why. I owned the same tablet previously and didn't have this problem. I am using: Embarcadero® Delphi 10.4 Version 27.0.40680.4203 with Update 2. Android SDK 26.1.1 Android NDK r21e Thanks, David Carroll
  25. Hi all, A generic question. I'm deploying my apps with an embedded SQLite DB. Each time I compile/deploy, that existing on device DB file is overwritten by the default one. It's fine for development. But how do you actually proceed if you want to deploy an update? If a user has the app already with personal data, I don't want her/him to lose that data. Testing whether the DB already exists is not possible since it's deployed each time within the new binary. One way would be to have all the code to check whether the DB exists. If not, programmatically create it and fill it with sample data. If it does, just check its version and apply possible structure upgrades? But it feels like this would embark a lot of code that may not really be useful. How do you guys deploy news versions of your apps without overwriting exists DBs? I especially think about iOS and Android devices. Thanks for any light. Steve
×