Jump to content

Francisco

Members
  • Content Count

    24
  • Joined

  • Last visited

Everything posted by Francisco

  1. When targeting newer Android SDK for uploading an app to Google's store I obtain an error when sending a file as an attachment: android.os.FileUriExposedException: file:///storage/emulated/0/Documents/filename.jpg exposed beyond app through ClipData.Item.getUri() The code was working fine in Tokyo. procedure CreateEmail(const Recipient, Subject, Content, Attachment: string); var JRecipient: TJavaObjectArray<JString>; Intent: JIntent; Uri: Jnet_Uri; AttachmentFile: JFile; begin JRecipient := TJavaObjectArray<JString>.Create(1); JRecipient.Items[0] := StringToJString(Recipient); Intent := TJIntent.Create; Intent.setAction(TJIntent.JavaClass.ACTION_SEND); Intent.setFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK); Intent.putExtra(TJIntent.JavaClass.EXTRA_EMAIL, JRecipient); Intent.putExtra(TJIntent.JavaClass.EXTRA_SUBJECT, StringToJString(Subject)); Intent.putExtra(TJIntent.JavaClass.EXTRA_TEXT, StringToJString(Content)); if Attachment <> '' then begin AttachmentFile := TJFile.JavaClass.init(StringToJString(Attachment)); Uri := TJnet_Uri.JavaClass.fromFile(AttachmentFile); Intent.putExtra(TJIntent.JavaClass.EXTRA_STREAM, TJParcelable.Wrap((Uri as ILocalObject).GetObjectID)); end; Intent.setType(StringToJString('vnd.android.cursor.dir/email')); TandroidHelper.Activity.startActivity(Intent); end; I have tried different codes I found over there. No one works. I have activated "Secure File Sharing" in Project Options. I have tried a code using DW.Androidapi.JNI.FileProvider.pas But I cannot get one working. Thanks in advance.
  2. Francisco

    In-App purchase

    Google is not accepting the In-App library developed by Embarcadero. Any fix is available? Thanks in advance
  3. Francisco

    IOS 15 suppoort

    Did you solve the problem?
  4. Francisco

    Full screen with iOS 15

    Hi: I have several apps in the Apple store working well with iOS 15. However one of them is not running, saying that the developer has to update the app. We received an email from Apple saying;: However, if you’ve added UIRequiresFullScreen=YES to your app’s Info.plist in order to keep your app full screen during multitasking, you’ll need to recompile with Xcode 13 and the SDK for iPadOS 15 to take advantage of the full screen size. Test and submit your updated app in App Store Connect today. I have removed UIRequiresFullScreen=YES. However, tha app is still not working in iOS 15. I have Dephi 10.4 last version MacOS Catalina 10.15.7 Xcode 11.4.1 I only want to recompile, it seems I have to install Xcode 13 or 13.1. But then I have to upgrade MAcOS 11.3 or posterior. Monterrey is available as upgrade. Several doubts: 1) So as removing UIRequiresFullScreen=YES is not working, is this the problem or not? is the problem solved recompiling with Xcode 13.1? 2) On a thread I can read Monterrey is not suported. OK? Shoukd I update to Big Sur to use Xcode 13.1? 3) Can I follow with Delphi 10.4 last version? Thankds in advance.
  5. Francisco

    AV with InApp purchase on MacOS

    Hi: Any news from this idea? It is a pity not to have the inAap for MacOs
  6. Francisco

    StoryBoard launch screen - Delphi 10.4

    I still have a blank screen. Let me show you my resolutions, may be this is the problem: Iphone 2x: 750x1134 Iphone 3x: 1125x2436 iPad 2x: 1536x2048 All portrait, because the App only works in portrait
  7. Francisco

    StoryBoard launch screen - Delphi 10.4

    More news: I sent an ipa file to TestFlight, and when it was available I installed it in my iPad. Aafter removing previous version, rebooting , and installing from TestFlight, still with no splash screen. So probably my final version will be rejected. 😞
  8. Francisco

    Big problem with info.plist iOS

    Version 10.4.1 with the last patch. Suddenly I cannot obtain the ipa file. During "Compiling Asset catalogue" this error is shown: [PAClient Error] Error: E6665 Cannot open file "/Users/faparisi/PAServer/scratch-dir/Paco-miniMac/XXXXCX.app/Info.plist". No such file or directory This happens some times, and I have to use a previous backup, loosing my last work. I did nothing special, just writing some new code. Going back to a previous back solves the problem. But I cannot use my last work. Why this happens? Is this related to the problem of the splash scree (blank screen)? How to solve it? Please, help. This is very frustrating.
  9. Francisco

    Big problem with info.plist iOS

    SO SORRY. It was my fault. Not all the files where selected in the Deployment window.
  10. Francisco

    StoryBoard launch screen - Delphi 10.4

    unistalling the app and restarting the iOS device is not working for me. This seems an Embarcadero bug
  11. Francisco

    Migrating to Sydney AndroidManifest error

    Hi: I am compiling a project that works perfectly in Delphi 10.3.2. When I compile it in 10.4 I have to remove the following lines of the AndroidManifast.templete: <provider android:name="android.support.v4.content.FileProvider" android:authorities="com.FJAG.XXXXX.fileprovider" android:grantUriPermissions="true" android:exported="false"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/filepaths" /> </provider> To be honest I remember that I had to include that code some long time ago, but I d not remember the reason to add it. And if I do not remove it, IDE shows an error at: @xml/filepaths. After removing that code then I can obtain the apk. But the app cannot finish the start, splash image is there forever. But probably this is due to another problem. Any help? Thanks in advance.
  12. Francisco

    TComboBox selector size problem in iOS

    Hi: My App has a very wide TComboBox, because the text in the Items' String is large. In Android and Windows this is not a problem when the user select one of the Items. The user can see all the text of the Items. However, in iOS the selector, the windows to select the Item, is narrow, and many text is not visible. Is there any way to increase the width of this selector windows in iOS? Thanks in advance.
  13. Francisco

    TComboBox selector size problem in iOS

    I found the solution. Itemwidth only works in Windows, if you do not change DropDownKind . For the other platforms you have to change DropDownKind to Custom
  14. Francisco

    TComboBox selector size problem in iOS

    I am attaching a picture to show the problem:
  15. Francisco

    Arab in iOS

    Hi: I am translating my app to several languages. Arab works in Android and Windows. However, it is not possible to see any Arab text in iOS. Any idea? Thanks in advance.
  16. Francisco

    Arab in iOS

    Yes... good idea. I will try different fonts. What I am doing is using google translator. I just copy the translation from the google page and I paste in the label text. It seems to work...
  17. Francisco

    Arab in iOS

    to be more clear, in iOS no text in shown in the app when runnning. in Android and Window the text is shown correctly. I think it is related to iOS, no to FMX. Ir is only showing text, no text input needed.
  18. Francisco

    Arab in iOS

    As I commented, it works in Android and Windows. Only problems in iOS
  19. Francisco

    Android. FileUriExposedException: file:///

    It works now!!! Tested in Android 7 and 9 I added: Intent.setType(StringToJString('vnd.android.cursor.dir/email')); Therefore, I would like to share a procedure that permits to send an email with attachment (any type of file) in Android. Do not forget to modify the AndroidManifest file and to create the xml file, as commented before. procedure CreateEmail(const Recipient, Subject, Content, Attachment: string); var JRecipient: TJavaObjectArray<JString>; Intent: JIntent; Uri, data: Jnet_Uri; AttachmentFile: JFile; begin JRecipient := TJavaObjectArray<JString>.Create(1); JRecipient.Items[0] := StringToJString(Recipient); Intent := TJIntent.Create; Intent.setAction(TJIntent.JavaClass.ACTION_SEND); Intent.setFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK); Intent.putExtra(TJIntent.JavaClass.EXTRA_EMAIL, JRecipient); Intent.putExtra(TJIntent.JavaClass.EXTRA_SUBJECT, StringToJString(Subject)); Intent.putExtra(TJIntent.JavaClass.EXTRA_TEXT, StringToJString(Content)); if TJBuild_VERSION.JavaClass.SDK_INT >= TJBuild_VERSION_CODES.JavaClass.N then begin AttachmentFile := TJFile.JavaClass.init(StringToJString(Attachment)); Intent.addFlags(TJIntent.JavaClass.FLAG_GRANT_READ_URI_PERMISSION); Data := TJFileProvider.JavaClass.getUriForFile(TAndroidHelper.Context, StringToJString('com.FJAG.StatSuite.fileprovider'), AttachmentFile); end else Data := TJnet_Uri.JavaClass.parse(StringToJString('file://' + Attachment)); Intent.putExtra(TJIntent.JavaClass.EXTRA_STREAM, TJParcelable.Wrap((Data as ILocalObject).GetObjectID)); Intent.setType(StringToJString('vnd.android.cursor.dir/email')); TAndroidHelper.Activity.startActivity(Intent); end; Thanks a lot to Remy and Dave!!
  20. Francisco

    Android. FileUriExposedException: file:///

    Remy, I modified that line to: Intent.addFlags(TJIntent.JavaClass.FLAG_GRANT_READ_URI_PERMISSION); And I am still obtaining the same error: android.content.ActivityNotFoundException: No activity found to handle Intent {act=android.intent.action.SEND flg=0x1 launchParam=MultiScreenLaunchParams {mDisplayld=0 mFlags=0} clip={null T:A StatSuite file is attached} (has extras)}
  21. Francisco

    Android. FileUriExposedException: file:///

    Thanks Remy. This seems tricky. The first thing I have done is including in the manifest file the following code: <provider android:name="android.support.v4.content.FileProvider" android:authorities="com.FJAG.StatSuite.fileprovider" android:grantUriPermissions="true" android:exported="false"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/filepaths" /> </provider> Then I create a file with name filepaths.xml with the following content: <?xml version="1.0" encoding="utf-8"?> <paths> <external-path name="external_files" path="." /> </paths> In RAD Studio, deployment, I add this file with remote path: res\xml\ My procedure to send the email with an attachmet is: procedure CreateEmail(const Recipient, Subject, Content, Attachment: string); var JRecipient: TJavaObjectArray<JString>; Intent: JIntent; Uri, data: Jnet_Uri; AttachmentFile: JFile; begin JRecipient := TJavaObjectArray<JString>.Create(1); JRecipient.Items[0] := StringToJString(Recipient); Intent := TJIntent.Create; Intent.setAction(TJIntent.JavaClass.ACTION_SEND); Intent.setFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK); Intent.putExtra(TJIntent.JavaClass.EXTRA_EMAIL, JRecipient); Intent.putExtra(TJIntent.JavaClass.EXTRA_SUBJECT, StringToJString(Subject)); Intent.putExtra(TJIntent.JavaClass.EXTRA_TEXT, StringToJString(Content)); if TJBuild_VERSION.JavaClass.SDK_INT >= TJBuild_VERSION_CODES.JavaClass.N then begin AttachmentFile := TJFile.JavaClass.init(StringToJString(Attachment)); Intent.setFlags(TJIntent.JavaClass.FLAG_GRANT_READ_URI_PERMISSION); Data := TJFileProvider.JavaClass.getUriForFile(TAndroidHelper.Context, StringToJString('com.FJAG.StatSuite.fileprovider'), AttachmentFile); end else Data := TJnet_Uri.JavaClass.parse(StringToJString('file://' + Attachment)); Intent.putExtra(TJIntent.JavaClass.EXTRA_STREAM, TJParcelable.Wrap((Data as ILocalObject).GetObjectID)); TAndroidHelper.Activity.startActivity(Intent); end; The error when calling this procedure is: android.content.ActivityNotFoundException: No activity found to handle Intent {act=android.intent.action.SEND flg=0x1 launchParam=MultiScreenLaunchParams {mDisplayld=0 mFlags=0} clip={null T:A StatSuite file is attached} (has extras)} "A StatSuite file is attached" is the subject of the email Please, a couple of questions: 1.- Must I activate "Secure File Sharing" in the Entitlement List? (it is activated now) 2.- What am I doing wrong? Thanks in advance
  22. I have a project that compiles for iOS 64 bits perfectly when SDK is 11.2 When compiling for SDK 12.1 I obtain this error: [DCC Error] E2597 NYI lto::archName ld: file was built for which is not the architecture being linked (arm64): C:\Users\Paco\Documents\Embarcadero\Studio\SDKs\iPhoneOS12.1.sdk/System/Library/Frameworks/MessageUI.framework/MessageUI.tbd for architecture arm64 I have been reading the same problem in other forums, but, honestly, I cannot understand how to solve it for the Embarcadero compiler. I am using Rio 10.3.2 Any help? Thanks in advance.
  23. It works now! Thanks a lot The problem is I was selecting "Other path"
  24. Dave, thanks for taking your time. The same code is working for SDK 11.2. So I think the problems is not in the code. Anyway, I obtained the code from this post: https://www.woll2woll.com/single-post/2017/04/24/Send-an-Email-with-an-Attachment-FireMonkey Here is the link to the pas file: https://github.com/roywoll/wwEmailWithAttachment_FMX/blob/master/wwEmailWithAttachment.pas where we can read: const libMessageUI = '/System/Library/Frameworks/MessageUI.framework/MessageUI'; I changed to: libMessageUI = '/System/Library/Frameworks/MessageUI.framework/MessageUI.tdb';  Same error message. However, it is true that I have problems to import the sdk from the Mac. When I click "Update Local File Cache" I can check that in the PC SDK directory list the MessageUI.framework directory is not copied from the Mac. I do not know what I am doing wrong, because it seems quite easy to do. No error message is shown after clicking on "Update Local File Cache" . A picture follows showing the SDK manager of RAD Studio. https://ibb.co/CnKLCQn What I am doing to solve this issue is copying form MAC Xcode the directory to the PC SDK directory. I think (not 100% sure) that I had to do the same for Tokyo (copying from the MAC). But it seems that now it does not work.
×