Jump to content

Jose Morango

Members
  • Content Count

    26
  • Joined

  • Last visited

Posts posted by Jose Morango


  1. Hi everyone,

     

    I have an app with several forms, in one of them I'm using a web browser component to read some pdf files,  In Delphi Rio 10.3.3 it works flawlessly on ios, android, and windows.

    Now I'm using Delphi 10.4.2 and in this same project, the webbrowser component doesn't work on Android, I mean it doesn't load any page no matter the URL, but still working fine on iOS and Windows.

    So I use the monitor tool form the Android SDK and get this log :

     

    06-15 00:06:22.137: E/Netd(5108): getNetworkForDns: getNetId from enterpriseCtrl is netid 0
    06-15 00:06:22.306: E/Netd(5108): getNetworkForDns: getNetId from enterpriseCtrl is netid 0
    06-15 00:06:22.314: E/Netd(5108): getNetworkForDns: getNetId from enterpriseCtrl is netid 0
    06-15 00:06:22.797: E/BartenderActivityManager(5380): BarTender: pid : 3222 cached=true abnormal=false kill=false stay=false release=false
    06-15 00:06:22.883: E/Netd(5108): getNetworkForDns: getNetId from enterpriseCtrl is netid 0
    06-15 00:06:22.891: E/chromium(3357): [ERROR:tile_manager.cc(811)] WARNING: tile memory limits exceeded, some content may not draw
    06-15 00:06:23.062: E/BartenderActivityManager(5380): BarTender: pid : 3321 cached=true abnormal=false kill=false stay=false release=false
    06-15 00:06:23.169: E/chromium(3357): [ERROR:tile_manager.cc(811)] WARNING: tile memory limits exceeded, some content may not draw
    06-15 00:06:23.393: E/Netd(5108): getNetworkForDns: getNetId from enterpriseCtrl is netid 0
    06-15 00:06:23.461: E/chromium(3357): [ERROR:tile_manager.cc(811)] WARNING: tile memory limits exceeded, some content may not draw
    06-15 00:06:23.462: E/chromium(3357): [ERROR:tile_manager.cc(811)] WARNING: tile memory limits exceeded, some content may not draw
    06-15 00:06:23.513: E/Netd(5108): getNetworkForDns: getNetId from enterpriseCtrl is netid 0
    06-15 00:06:23.519: E/Netd(5108): getNetworkForDns: getNetId from enterpriseCtrl is netid 0
    06-15 00:06:23.583: E/Netd(5108): getNetworkForDns: getNetId from enterpriseCtrl is netid 0
    06-15 00:06:23.615: E/BartenderActivityManager(5380): BarTender: pid : 3032 cached=true abnormal=false kill=false stay=false release=false
    06-15 00:06:23.781: E/Netd(5108): getNetworkForDns: getNetId from enterpriseCtrl is netid 0
    06-15 00:06:23.884: E/chromium(3357): [ERROR:tile_manager.cc(811)] WARNING: tile memory limits exceeded, some content may not draw
    06-15 00:06:23.898: E/chromium(3357): [ERROR:tile_manager.cc(811)] WARNING: tile memory limits exceeded, some content may not draw
    06-15 00:06:23.914: E/Netd(5108): getNetworkForDns: getNetId from enterpriseCtrl is netid 0
    06-15 00:06:23.924: E/chromium(3357): [ERROR:tile_manager.cc(811)] WARNING: tile memory limits exceeded, some content may not draw
    06-15 00:06:24.009: E/chromium(3357): [ERROR:tile_manager.cc(811)] WARNING: tile memory limits exceeded, some content may not draw
    06-15 00:06:24.040: E/Netd(5108): getNetworkForDns: getNetId from enterpriseCtrl is netid 0
    06-15 00:06:24.041: E/chromium(3357): [ERROR:tile_manager.cc(811)] WARNING: tile memory limits exceeded, some content may not draw
    06-15 00:06:24.047: E/BartenderActivityManager(5380): BarTender: pid : 3547 cached=true abnormal=false kill=false stay=false release=false
    06-15 00:06:24.050: E/BartenderActivityManager(5380): BarTender: pid : 3568 cached=true abnormal=false kill=false stay=false release=false
    06-15 00:06:24.053: E/BartenderActivityManager(5380): BarTender: pid : 10589 cached=true abnormal=false kill=false stay=false release=false
    06-15 00:06:24.136: E/chromium(3357): [ERROR:tile_manager.cc(811)] WARNING: tile memory limits exceeded, some content may not draw
    06-15 00:06:24.140: E/Netd(5108): getNetworkForDns: getNetId from enterpriseCtrl is netid 0
    06-15 00:06:24.141: E/Netd(5108): getNetworkForDns: getNetId from enterpriseCtrl is netid 0

     

     

    So I'm really stuck, don't know what to do :classic_wacko:

     

    Does anyone have a clue???

     

     

     

     


  2. Hi Guys,

     

    I'm just beginning to use 10.4.2 Version of Delphi to update my iOS app to the store.

    In some of my app forms, I'm using the TTimeEdit component, but when I compile it to My iPhone and try to pick a time there is a new style selected by default the "compact" style, I really don't like it.

     

    How can I select the "inline" style? Is it something I can do in the Info.plist file?

     

    Here is the link with details about the new UIDatePicker in iOS 14    https://www.andyibanez.com/posts/new-uidatepicker-ios14/

     

    Any idea? :classic_blush:

     

     

     


  3. Hi Dave,

    thanks for the reply,

     

    This is my manifest. If I remove the android:requestLegacyExternalStorage="true", then I'm able to compile and deploy the app.

    <?xml version="1.0" encoding="utf-8"?>
    <!-- BEGIN_INCLUDE(manifest) -->
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
            package="com.tecnicos.bim"
            android:versionCode="105"
            android:versionName="9.4.5"
            android:installLocation="auto">
    
        <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="29" />
        <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
        <uses-permission android:name="android.permission.CALL_PHONE" />
        <uses-permission android:name="android.permission.CAMERA" />
        <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.NFC" />
        <uses-permission android:name="android.permission.READ_CALENDAR" />
        <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.READ_PHONE_STATE" />
        <uses-permission android:name="android.permission.WRITE_CALENDAR" />
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.WAKE_LOCK" />
        <permission android:name="com.tecnicos.bim.permission.C2D_MESSAGE" android:protectionLevel="signature" />
        <uses-permission android:name="com.tecnicos.bim.permission.C2D_MESSAGE" />
        <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
    
        <uses-feature android:glEsVersion="0x00020000" android:required="True"/>
        <application				 
    		android:persistent="False" 
            android:restoreAnyVersion="False" 
            android:label="BIM Hospitality" 
            android:debuggable="True" 
            android:largeHeap="False"
            android:icon="@drawable/ic_launcher"
            android:theme="@style/AppTheme"
            android:hardwareAccelerated="true"
    	android:requestLegacyExternalStorage="true"
            android:resizeableActivity="false">
    
            <provider
                android:name="android.support.v4.content.FileProvider"
                android:authorities="com.tecnicos.bim.fileprovider"
                android:exported="false"
                android:grantUriPermissions="true">
                <meta-data
                    android:name="android.support.FILE_PROVIDER_PATHS"
                    android:resource="@xml/provider_paths" />
            </provider>
    <provider
                android:name="com.embarcadero.firebase.provider.FirebaseInitProvider"
                android:authorities="com.tecnicos.bim.firebaseinitprovider"
                android:exported="false"
                android:initOrder="100">
            </provider>
    
            <meta-data android:name="com.google.firebase.messaging.default_notification_color" android:resource="@color/notification_accent_color" />
            <meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@drawable/ic_notification" />
    
            
            <service android:exported="false" android:name="com.embarcadero.firebase.messaging.ProxyFirebaseMessagingService">
                <intent-filter>
                    <action android:name="com.google.firebase.MESSAGING_EVENT" />
                </intent-filter>
            </service>
    
            <service android:exported="true" android:name="com.google.firebase.messaging.FirebaseMessagingService">
                <intent-filter android:priority="-500">
                    <action android:name="com.google.firebase.MESSAGING_EVENT" />
                </intent-filter>
            </service>
    
            <service android:exported="false" android:name="com.google.firebase.components.ComponentDiscoveryService">
                <meta-data android:name="com.google.firebase.components:com.google.firebase.iid.Registrar" android:value="com.google.firebase.components.ComponentRegistrar" />
            </service>
    
    
            <!-- Our activity is a subclass of the built-in NativeActivity framework class.
                 This will take care of integrating with our NDK code. -->
            <activity android:name="com.embarcadero.firemonkey.FMXNativeActivity"
                    android:label="BIM Hospitality"
                    android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
                    android:launchMode="singleTask">
                <!-- Tell NativeActivity the name of our .so -->
                <meta-data android:name="android.app.lib_name"
                    android:value="BimMobile5" />
                <intent-filter>  
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter> 
            </activity>
            
            
            <service android:name="com.embarcadero.gcm.notifications.GCMIntentService" />
            
            <receiver android:name="com.embarcadero.rtl.notifications.NotificationAlarm" />
            <receiver android:exported="true" android:name="com.google.firebase.iid.FirebaseInstanceIdReceiver" android:permission="com.google.android.c2dm.permission.SEND">
                <intent-filter>
                    <action android:name="com.google.android.c2dm.intent.RECEIVE" />
                </intent-filter>
            </receiver>
    
        </application>
    </manifest>
    <!-- END_INCLUDE(manifest) -->

     


  4. Hi Everyone,

     

    When using the 

    android:requestLegacyExternalStorage="true"

    I Get an error  trying to run  my app to my android device or when trying to deploy the app

     

     [PAClient Error] Error: E2312 H:\Projectos\BimPlatformMobile\Android64\Release\BimMobile5\AndroidManifest.xml:37: error: Error parsing XML: not well-formed (invalid token)

     

    Does anyone have this problem?


  5. On 9/3/2020 at 8:41 AM, Dave Nottage said:

    You may need to add:

    
      android:requestLegacyExternalStorage="true"
     

    To the <application> tag in AndroidManifest.template.xml

    Hi Dave,

     

    I've made my app works with Api 29 using the tutorial of Horacio Filho . The app run fine on my Xiaomi Mi 2 lite with android 10.

     

    I only have a problem when taking photos with the camera or selecting photos from the gallery. With the Api 28 all was working fine.

     

    Does this permissions also solve the problem of taking photos in Android 10  or is there another permission?

     

    Regards

     

    José

     


  6. On 12/25/2019 at 12:04 AM, Yaroslav Brovin said:

    Flutter is interesting. Instant run, interesting language. BUT, we love Delphi for good and convenient working with DB, incredibly fast creating UI mock. And I'm sure the biggest part of developers in this forum has a lot of existing Delphi code, which is very interesting to run in mobile platforms. So I believe Flutter is not a magic bullet. I'll say the obvious thing, but each technologies has advantages and disadvantages for each project. So everybody select solution based on his own preferences.

    Hi Yaroslav,  Any date for iOS FGX-Native , I'm still counting on You My friend 🙂


  7. On 9/23/2019 at 5:42 PM, futuron said:

    Application Loader does not seem to exist anymore. Apple announced this a while back. Unfortunately not seen any response from Embarcadero.

    That means that we won't be able to publish any app to Apple's app stores anymore until Embarcadero solved this.

     

    If you need to publish to the App Store then DO NOT UPDATE!

    I had the exact same problem, but I solved it installing a old version of the Application loader. It give some warning but work fine, I was able to submit my app to the Apple Store.


  8. 2 minutes ago, Ugochukwu Mmaduekwe said:

     

    Note the key word free in the original poster question.

    Hi Ugochukwu,

    Sorry Ii didn't pay  attention to the "Free" word,

    but sometimes when we measure all the time and work time that we lost finding the rigth free tool It is better to buy one, dependind of course of the cost vs profit of the project we working on.

     

     


  9. 30 minutes ago, Rollo62 said:

    https://community.idera.com/developer-tools/b/blog/posts/additional-information-for-the-android-32-bit-extension

     

    This proposal is still processing for me, at least Google didn't directly said NO.
    Currently the cases were pushed from 1st operator to technical team, waiting for their answer.
    I hope that I will hear some positive results, to move on with my work.

    In the firt week of August  I was able to submit my 32 bit app using the sdk 27 as target, but today I was not able to do it anymore, So I filled a Extension request.


  10. On 7/24/2019 at 5:38 AM, Eli M. said:

    PM me with a budget. I can probably put together some people on UpWork with Android NDK experience to build a 64bit shim.

     

    Few different options. Use one of the tools that has an exception (Corona Labs, Adobe AIR, Unity) to load the 32bit SO file. Use something like Flutter which compiles to 64bit to load the 32bit SO file. Or compile a 64bit C++ SO file with the Android NDK to loadlibrary the 32bit SO file.

    Hi Eli M.  do you have some kind of instrutions to use one of the above few different options that you mention? 


  11. 8 minutes ago, dummzeuch said:

    Does the Community Edition even include these subscription only updates?

    Thats why I'm asking, I will download the Comunity Edition again  and then verify if it´s the 10.3.1 version, if not then I'm stuck ( again)


  12. Hi Guys,

    Since my android phone updated to android 9.0 then im my fmx android app the first time I take a photo a dialog message appears "Detected problems with API-compatibility".

    Also if my phone go to sleep while running this fmx app then when I wake it up the same message appears.

    This was not happening in Android 8.1.

    Can anyone point me to a solution? 

     

    Thanks

     


  13. Hi guys

     

    In Delphi Tokyo I use Transparent Background Forms to achieve some of my needs,

    In Delphi Rio Transparity no longer works on Android, the forms are Black.

     

    I'm talking about the Transparecy property of the form set to True.

     

    If I compile to win32 then it works as it should.

     

    Any Idears or sugestions?

     

     

    Regards

     

    Jose


  14. 16 hours ago, mausmb said:

    Quick Example :

     

    private 

    {$IFDEF ANDROID}
      fReadStorage:=JStringToString(TJManifest_permission.JavaClass.READ_EXTERNAL_STORAGE);
      fWriteStorage:=JStringToString(TJManifest_permission.JavaClass.WRITE_EXTERNAL_STORAGE);
      fBlueTooth:=JStringToString(TJManifest_permission.JavaClass.BLUETOOTH);
    {$ENDIF}


    procedure Tfrm????.FormShow(Sender: TObject);
    begin
    {$IF DEFINED(IOS) or DEFINED(ANDROID)}
    PermissionsService.RequestPermissions([fReadStorage,fWriteStorage,fBlueTooth], RequestPermissionsResult, DisplayRationale);
    {$ENDIF}
    end;

     

    procedure Tfrm????.RequestPermissionsResult(Sender: TObject; const APermissions: TArray<string>; const AGrantResults: TArray<TPermissionStatus>);
    begin
      if (Length(AGrantResults) = 3) and (AGrantResults[0] = TPermissionStatus.Granted) and (AGrantResults[1] = TPermissionStatus.Granted) and (AGrantResults[2] = TPermissionStatus.Granted) then
         // execute procedure ...  as before on form show ...
      else Begin
        TDialogService.ShowMessage('No ....');
        Application.Terminate;
      End;
      // če ne bi dovolili permission bi moral showerror
    end;
    {$ENDIF}

     

    {$IF DEFINED(IOS) or DEFINED(ANDROID)}
    procedure Tfrm????..DisplayRationale(Sender: TObject; const APermissions: TArray<string>; const APostRationaleProc: TProc);
    var
      I: Integer;
      RationaleMsg: string;
    begin
      for I := 0 to High(APermissions) do
      begin
        if APermissions = fReadStorage then
          RationaleMsg := RationaleMsg + 'Aplikacija zahteva branje pomnilnika' + SLineBreak + SLineBreak
        else if APermissions = fWriteStorage then
          RationaleMsg := RationaleMsg + 'Aplikacija zahteva pisanje pomnilnika'+ SLineBreak + SLineBreak
       else if APermissions = fBlueTooth then
          RationaleMsg := RationaleMsg + 'Aplikacija zahteva BlueTooth';
      end;
      TDialogService.ShowMessage(RationaleMsg,
        procedure(const AResult: TModalResult)
        begin
          APostRationaleProc;
        end)
    end;
    {$ENDIF}

    Thank you very mush  🙂


  15. 17 hours ago, Dave Nottage said:

    You need to explicitly request those permissions at runtime. Check out the CameraComponent demo in:

     

    \Users\Public\Documents\Embarcadero\Studio\20.0\Samples\Object Pascal\Mobile Snippets\CameraComponent

     

    Also, there's no such permission as CAMERA_EXTERNAL_STORAGE. I expect you mean READ_EXTERNAL_STORAGE

    Hi Dave, thanks for the info, It's all working fine now.

×