-
Content Count
27 -
Joined
-
Last visited
Everything posted by Minox
-
Try var LCursor : JCursor := TAndroidHelper.Context.getContentResolver().query(URIfileTrn,nil,nil,nil,nil); If LCursor=Nil Then Exit; LCursor.moveToFirst; var colIndex : Integer := LCursor.getColumnIndexOrThrow(TJOpenableColumns.JavaClass.DISPLAY_NAME); If colIndex<>-1 Then Result := JStringToString(LCursor.getString(colIndex)); Except Result := ''; End; with the latest OS, with the path you get you can't do anything with it, personally I download the file in the personal folder and use it
-
You probably have set the "Style" preview to "Windows", try selecting the right destination (you can find it in Design)
-
if you change the value to "PrinterIndex" it is called "EndDoc", so you have to select the printer before "BeginDoc"
-
I also encountered the same problem, I solved it by replacing the code: Ad := '"' + DosyaAdi(Uri) + '" ' with If RequestCode<>Dizin_Agaci_Ac Then Ad := '"' + DosyaAdi(Uri) + '" ' Else Ad := TPath.GetFileName(JStringToString(uri.getPath)); in the "OnActivityResult" procedure, but it still doesn't work, even if you give consent you can't read the files. I tried with the "Download" folder and I only get the folders contained therein.
-
The problem is that if the division results in "NAN", no exception is raised, so at runtime the error cannot be detected.
-
Have you tested it? because it works for me, it won't be the best of programming, but if it works...
-
I had a similar problem with android, I solved it by trying to convert the result to string and then to number, so I modified your code a bit, but I can't test it with "NAN": procedure TForm2.Button1Click(Sender: TObject); var V1, V2, V3: Variant; I1, I2: Integer; S1 : String; begin V1 := 0; V2 := 0; Try V3 := V1 / V2; Except V3 := -1; End; Try S1 := FloatToStr(V3); StrToFloat(S1); Except V3 := -1; End; If V3=-1 Then ShowMessage('Division by zero') Else ShowMessage(V3); I1 := 0; I2 := 0; ShowMessage(FloatToStr(I1 / I2)); end;
-
Have you tried changing the "Scale" property? in some cases it may be fine
- 13 replies
-
- fmx
- firemonkey
-
(and 5 more)
Tagged with:
-
If your intention is to open the explorer automatically in a specific location, I don't think it's possible to do it with the system one. Third-party ones do it instead, but I've never faced the problem. This session could be a good start to understand if there is a possibility to do it.
-
I use this: uses Androidapi.JNI.GraphicsContentViewText, Androidapi.Helpers, System.Messaging, Androidapi.JNI.Net, Androidapi.JNI.App, PROCEDURE TForm1.GetFileBrowser; VAR Intent : JIntent; ReqCode : Integer; BEGIN ReqCode := 1000; Intent := TJIntent.Create; Intent.setType(StringToJString('*/*')); Intent.setAction(TJIntent.JavaClass.ACTION_GET_CONTENT); Intent.putExtra(TJIntent.JavaClass.EXTRA_ALLOW_MULTIPLE,true); TMessageManager.DefaultManager.SubscribeToMessage(TMessageResultNotification, procedure(const Sender : TObject; const aMessage : TMessage) VAR msgRES : TMessageResultNotification; begin msgRES:= TMessageResultNotification(aMessage); If msgRES.RequestCode=ReqCode Then if (msgRES.ResultCode=TJActivity.JavaClass.RESULT_OK) Then Begin URIfileTrn := msgRES.Value.getData(); //URI sing file selez If URIfileTrn=Nil Then //multiselez ClipDataF := msgRES.Value.getClipData; End; end); TAndroidHelper.Activity.startActivityForResult(Intent, ReqCode); END; and then via thread process the URI
-
Using inline variables inside loops
Minox replied to havrlisan's topic in RTL and Delphi Object Pascal
you're declaring the same variable 10 times, I don't think it's possible the way you mean, you could alternatively use a record type, and then call it in an array, like: type myRec = Record myVar : String[20]; End; [...] var ArrRec : Array Of myRec; [...] procedure Sample(const AFixedArray: TSomeFixedArray); begin SetLength(ArrRec,10); for var I = 0 to 10 do begin ArrRec[I].myVar := 'xyz'+I.ToString; // do something end end -
If you have the rights to access the "DCIM/MyFolder" folder, you could build a simple browser (via "System.IOUtils.TDirectory.GetFiles") yourself and display the files contained in a list. Or launch an "Intent" with "ACTION_GET_CONTENT", to open the system app
-
Handle it like a data store? In the sense of creating a record for the first file where some fields point to the second file, so when you order the first, to read in the second file you just need to read the pointer.
-
Hi all, I have a code to maximize and minimize screen brightness for android app, which works fine in 32bit, but not in 64bit. Here is the code: USES Androidapi.JNI.GraphicsContentViewText, Androidapi.Helpers; procedure TForm1.Button1Click(Sender: TObject); //min VAR appParam : JWindowManager_LayoutParams; begin appParam := TAndroidHelper.Activity.getWindow.getAttributes; appParam.screenBrightness := TJWindowManager_LayoutParams.JavaClass.BRIGHTNESS_OVERRIDE_OFF; TAndroidHelper.Activity.getWindow.setAttributes(appParam); end; procedure TForm1.Button2Click(Sender: TObject); //max VAR appParam : JWindowManager_LayoutParams; begin appParam := TAndroidHelper.Activity.getWindow.getAttributes; appParam.screenBrightness := TJWindowManager_LayoutParams.JavaClass.BRIGHTNESS_OVERRIDE_FULL; TAndroidHelper.Activity.getWindow.setAttributes(appParam); end; procedure TForm1.Button3Click(Sender: TObject); //norm VAR appParam : JWindowManager_LayoutParams; begin appParam := TAndroidHelper.Activity.getWindow.getAttributes; appParam.screenBrightness := TJWindowManager_LayoutParams.JavaClass.BRIGHTNESS_OVERRIDE_NONE; TAndroidHelper.Activity.getWindow.setAttributes(appParam); end; I don't understand why it doesn't work, do I have to ask permission for the 64bit app and manually change the brightness?
-
Hello everyone, Do you know if it is possible to insert a link in your app, which points to the Google Play Store page, to view the list of your applications?
-
Thanks for the reply, but is it possible to place a link in an application that points to my page? Am I breaking some Google rule?
-
Hi everyone, i need to ask the permissions to read the notifications on the device, but i can't find the correct way to do it, in the project options i selected the "Bind notification listner service" permission. The code I use is this: uses ... Androidapi.JNI.GraphicsContentViewText, Androidapi.JNI.Provider, Androidapi.Helpers, Androidapi.JNI.JavaTypes, System.StrUtils ... procedure TFormTestPerm.Button1Click(Sender: TObject); //to show the permissions dialog VAR LIntent : JIntent; begin LIntent := TJIntent.Create; LIntent.setAction(TJSettings.JavaClass.ACTION_NOTIFICATION_LISTENER_SETTINGS); TAndroidHelper.Context.startActivity(LIntent); end; procedure TFormTestPerm.Button2Click(Sender: TObject); //to take the test VAR SecureS : JString; NomeAppS : String; begin NomeAppS := JStringToString(TAndroidHelper.Context.getPackageName); SecureS := TJSettings_Secure.JavaClass.getString(SharedActivityContext.getContentResolver, StringToJString('enabled_notification_listeners')); If AnsiContainsText(JStringToString(SecureS),NomeAppS) Then Label1.Text := 'SERVICE FOUND!' Else Label1.Text := 'NO SERVICE FOUND'+sLineBreak+'"'+NomeAppS+'"'; end; but my application does not appear in the list. I've found a few solutions on the net that I still can't get to work. Does anyone know the proper way to ask for this type of permission?
-
Ask permission to read device notifications on android 13
Minox replied to Minox's topic in Cross-platform
I managed to get the demo working, I didn't realize I have to add the ".jar" file in "Projects" too, thanks again -
Ask permission to read device notifications on android 13
Minox replied to Minox's topic in Cross-platform
ah yes sorry, I was laughing at the demo you indicated to me, it doesn't open, I can compile it but when it starts it closes immediately, the only way to start it is to remove the code in "onCreate". The device on which I test is a s10e with android 12, and RAD studio 11.3. -
Ask permission to read device notifications on android 13
Minox replied to Minox's topic in Cross-platform
Unfortunately I can't get the app to work, when opening it it either crashes or closes immediately. However it can help me to understand what the method is -
Ask permission to read device notifications on android 13
Minox replied to Minox's topic in Cross-platform
Thank you! now I study it -
try like this procedure TForm1.TrackBar1Change(Sender: TObject); begin ShowValue; //ScaledLayout1.Scale.X := TrackBar1.Value; //ScaledLayout1.Scale.Y := TrackBar1.Value; ScaledLayout1.BeginUpdate; ScaledLayout1.Width := ScaledLayout1.OriginalWidth * TrackBar1.Value; ScaledLayout1.Height := ScaledLayout1.OriginalHeight * TrackBar1.Value; ScaledLayout1.EndUpdate; //ScaledLayout1.RecalcAbsoluteNow; //ScaledLayout1.RecalcSize; end;
-
why do you resize the size too?
-
Ask permission to read device notifications on android 13
Minox replied to Minox's topic in Cross-platform
I have attached the code created so far, which once started it shows that my app does not appear in the list of those asking for permission. I found another site where they discuss this topic NotificationListenerService it looks like i have to declare a service before asking permissions, so now i will try to declare one, but i find it hard because java is too hard for me. TestPerm.zip -
Ask permission to read device notifications on android 13
Minox replied to Minox's topic in Cross-platform
From the latest versions of Android, to read the notifications the user must manually approve this choice, therefore when starting the app you have to open the notification authorization list and let him select it. To achieve this, as far as I understand, you need to set the "android.permission.BIND_NOTIFICATION_LISTENER_SERVICE" permission in the Manifest file (I do this in the project options), as described here: NotificationListenerService, and then at runtime open the permissions page to ask the user to activate them, using this entry: Settings Here a procedure in java: notificationlistenerservice I know my approach is wrong, but i don't understand where. For example, when I asked permission for brightness in other applications, I used the same approach, and it worked.