-
Content Count
17 -
Joined
-
Last visited
Everything posted by Aamgian
-
Hello, simple code that I made: TThread.CreateAnonymousThread(procedure begin TThread.Synchronize(nil, procedure begin HeaderLabel.Text := 'My Job'; end); end).Resume; when the target Android 64bit compile, using the application resume runs smoothly. Meanwhile, if you use Start to call the thread, error message will appear "cannot call start on a running or suspended thread" TThread.CreateAnonymousThread(procedure begin TThread.Synchronize(nil, procedure begin HeaderLabel.Text := 'My Job'; end); end).Start; this case only happened on some android devices target android 64bit, but if the target is 32bit the error message does not appear. has anyone experienced something similar? and what is the solution? device with sdk 30. Thank you
-
The code that I will use is actually a lot more, especially for doing the calculation process and making requests to the server. thank you for the advice you give.
-
I replaced all CreateAnonynousThread in my project with ITask and all works fine. thank you procedure THeaderFooterForm.Button1Click(Sender: TObject); var aTask: ITask; begin aTask := TTask.Create( procedure begin TThread.Synchronize(TThread.Current, procedure begin HeaderLabel.Text := 'My Job'; end); end); aTask.Start; end;
-
I have tried using Samsung and Xiaomi brand devices with SDK 30 but this error does not occur. is there a role for the device in causing this to happen? as a note the device with the Vivo brand that I use is the latest release.
-
sorry if I respond wrongly to what was conveyed by @Der schöne Günther, i will try to make report to Quality Portal, I am trying to ask here, maybe someone has experienced something similar. vide-cap.mp4
-
therefore I am looking for a way to solve this problem so that I can use Start.
-
precisely because I found something strange I asked, some friends did not believe what I was experiencing. I'll send you a video clip so you can see it.
-
Hello, How do I know if there is a VPN connection on the device that is active, because my application will ignore if using VPN? I use this code but it doesn't seem to work. function TPlatformConnectivity.IsVPNConnection: Boolean; var LManager: JConnectivityManager; LAllNetworks: TJavaObjectArray<JNetwork>; LCapabilities: JNetworkCapabilities; I: Integer; begin Result := False; LManager := ConnectivityManager; LAllNetworks := LManager.getAllNetworks; for I := 0 to LAllNetworks.Length - 1 do begin LCapabilities := LManager.getNetworkCapabilities(LAllNetworks[I]); if (LCapabilities <> nil) and LCapabilities.hasCapability(TJNetworkCapabilities.JavaClass.TRANSPORT_VPN) then //if (LCapabilities <> nil) and LCapabilities.hasCapability(TJNetworkCapabilities.JavaClass.TRANSPORT_VPN) then begin Result := True; Break; end; end; end; Thanks You
-
Thanks Dave, at least the VPN connection on the device can be known this code work i tested with android 9 and 10. function TPlatformConnectivity.IsVPNConnection: Boolean; var LManager: JConnectivityManager; LAllNetworks: TJavaObjectArray<JNetwork>; LCapabilities: JNetworkCapabilities; I: Integer; begin Result := False; LManager := ConnectivityManager; LAllNetworks := LManager.getAllNetworks; for I := 0 to LAllNetworks.Length - 1 do begin LCapabilities := LManager.getNetworkCapabilities(LAllNetworks[I]); if (LCapabilities <> nil) and LCapabilities.hasTransport(TJNetworkCapabilities.JavaClass.TRANSPORT_VPN) then begin Result := True; Break; end; end; end;
-
hi, does anyone use the alcinoe library here? I'm making a project using the alcinoe library, I have trouble handling the virtual keyboard when it appears. as seen in the gif file, the code works well only for the bottom 5 components contained in the AlVertScrollBox component. The following is a stub project that I made with additional TFramestand and Kastree libraries. Thanks for your help vkeyboard.zip screencapture-1586748057878.mp4
-
I have tried adding one layout component to shift them down by playing the top or bottom margin of the layout, but haven't gotten a good formula for the layout top / bottom margin value. in the above project I play the padding value of the frame.
-
sorry if my question is not clear, my problem is that not all aledit components can be directly above the virtual keyboard when it is showing. if you look at the 28 second video, the aledit component is not where I want it to be.
-
thanks you for you help, but still not work. I decided to leave this font problem in the application that I made.
-
I use nunito sans font from Google font. I made an application using the third party taltext component alcinoe so that the method could not worked but in android 9 that work fine, after I tried it with the default TText component it worked fine. but the next problem if I use the bold font style then it doesn't work. The following sample file that I made true_font.zip
-
hi, I have followed the method carried out by Landerson Gomes like in the video on youtube . but on Android 10 it doesn't work, while on Android <10 it works fine. is there a newest way to do it?
-
Hello, I want read Some code from predetermined sender short message for security 2 way my application. have problem to fetch short message. I had test this sample http://www.fmxexpress.com/send-and-fetch-sms-messages-with-delphi-firemonkey-on-android/ But not compatible with Delphi 10.3.3. Any body have reference or sample. Thanks you
-
Thank you Dave, I am done with the Android code of, now I have not found a reference for iOS. the link above that you provide seems to be a problem with the web emb. uses Androidapi.helpers, Androidapi.JNI.GraphicsContentViewText, Androidapi.jni.net, Androidapi.JNI.App, Androidapi.JNI.JavaTypes, function FetchSms(sender:string):string; var cursor: JCursor; uri: Jnet_Uri; address, msgdatesent, body: string; addressidx, msgdatesentidx, bodyidx: integer; fMessage: string; begin uri := StrToJURI('content://sms/inbox'); cursor := TAndroidHelper.Activity.getContentResolver.query(uri, nil, nil,nil,nil); addressidx := cursor.getColumnIndex(StringToJstring('address')); msgdatesentidx := cursor.getColumnIndex(StringToJstring('date_sent')); bodyidx := cursor.getColumnIndex(StringToJstring('body')); cursor.moveToFirst; while (cursor.moveToNext) do begin address := JStringToString(cursor.getString(addressidx)); msgdatesent := JStringToString(cursor.getString(msgdatesentidx)); body := JStringToString(cursor.getString(bodyidx)); if UpperCase(address) = UpperCase(sender) then begin fMessage := msgdatesent+'-'+address+'-'+body; Break end; end; Result := fMessage; end; of course you must be given READ_SMS permission.