Jump to content

Minox

Members
  • Content Count

    27
  • Joined

  • Last visited

Everything posted by Minox

  1. Minox

    Just open folder ( Android )

    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
  2. Minox

    TGroupBox Text problem

    You probably have set the "Style" preview to "Windows", try selecting the right destination (you can find it in Design)
  3. Minox

    PrinterIndex

    if you change the value to "PrinterIndex" it is called "EndDoc", so you have to select the printer before "BeginDoc"
  4. 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.
  5. Minox

    0/0 => EInvalidOp or NAN ?

    The problem is that if the division results in "NAN", no exception is raised, so at runtime the error cannot be detected.
  6. Minox

    0/0 => EInvalidOp or NAN ?

    Have you tested it? because it works for me, it won't be the best of programming, but if it works...
  7. Minox

    0/0 => EInvalidOp or NAN ?

    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;
  8. Have you tried changing the "Scale" property? in some cases it may be fine
  9. Minox

    Just open folder ( Android )

    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.
  10. Minox

    Just open folder ( Android )

    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
  11. 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
  12. Minox

    Just open folder ( Android )

    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
  13. Minox

    Sorting two lists in step?

    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.
  14. 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?
  15. Minox

    Link to Google Play

    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?
  16. Minox

    Link to Google Play

    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?
  17. 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?
  18. I managed to get the demo working, I didn't realize I have to add the ".jar" file in "Projects" too, thanks again
  19. 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.
  20. 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
  21. Minox

    TScrollbox and Scaling

    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;
  22. Minox

    TScrollbox and Scaling

    why do you resize the size too?
  23. 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
  24. 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.
×