German Altes Smartphone und https?

Midimaster

Active Member
Licensed User
Ich habe nun für mein Projekt einen neuen Server gestartet und der Download von Seiten und Dateien erfolgt immer per z.b. "https://myserver/daten/index.html" von meiner B4A-App aus.
B4X:
' using OkHttpUtils2-Library

    Dim MyJob  As HttpJob
        MyJob.Initialize("", Me)      
        MyJob.Download(InternetFolder)
        Wait For (MyJob) JobDone(MyJob As HttpJob)
    If MyJob.Success Then
        Dim gesamt As String
        gesamt=MyJob.GetString
Das klappt auch wunderbar solange ich aktuelle Smartphones teste. Aber jetzt habe ich ein altes Tablet mit Android 4.4 ausprobiert und da bekommt meine App keinen Download zustande. Die Message ist:
"ResponseError. Reason: javax.net.ssl.SSLException: SSL handshake aborted: ssl=0x7aadae78: I/O error during system call, Connection reset by peer, Response:"

Zugriffe auf nur "http://..." funktionieren einwandfrei


Kann ich mit einem bestimmten Code in der App auch Leuten mit solchen Smartphones den Zugriff ermöglichen?
 

Midimaster

Active Member
Licensed User
Ja, ich hatte den Beitrag gelesen und auch den Code darin ausprobiert. Aber das Resultat war das gleiche. Die Verbindung kam nicht zustande. Die Fehlermeldung ist die selbe.

Jetzt habe ich gerade noch einmal Erels Beispielcode versucht und mit dem dem Testen meines Teils (dem HttpJob) einfach mal 5 Sekunden ab dem Start der App gewartet und siehe da es scheint zu funktionieren. Ich bekomme die Testseite in Job.GetString()

Jetzt werde ich mal versuchen, das Ganze in meine Haupt-App einzubauen.
 
Last edited:

drgottjr

Expert
Licensed User
Longtime User
Es gibt ein Problem mit der 4.4 und der httputils-Bibliothek.
bezieht sich auf die Unterstützung von TLS Protokoll.
du musst donmanfred oder klaus finden hier. viele Beiträge online in Englisch auf Google. ich spreche nicht Deutsch, sorry
 

TILogistic

Expert
Licensed User
Longtime User
Welches Modell und welche Marke hat das Tablet?

meine frau ist deutsch sie hilft mir beim übersetzen .. hehehehe
????
 

Midimaster

Active Member
Licensed User
ich bin jetzt doch auf einem guten Weg.

Jetzt habe ich gerade noch einmal Erels Beispielcode versucht und mit dem dem Testen meines Teils (dem HttpJob) einfach mal 5 Sekunden ab dem Start der App gewartet und siehe da es scheint zu funktionieren. Ich bekomme die Testseite in Job.GetString()

Jetzt werde ich mal versuchen, das Ganze in meine Haupt-App einzubauen.

Ich bin noch verunsichert. weil ich nicht verstehe, was der Code genau nun macht und ob das möglicherweise Nachteile für die APP auf modernen Smartphones zur Folge hat.

Ich bin kein Freund von Einfügen von Code-Snipplet, die ich selbst nicht verstehe. Vielleicht hat ja noch irgendwer ein bißchen hintergrundwissen für mich?

So sieht das ganze gerade aus:

MAIN:
#AdditionalJar: com.google.android.gms:play-services-base

Sub Globals
    Dim z As Int
End Sub

Sub Activity_Create(FirstTime As Boolean)
    Dim timer1 As Timer
    timer1.Initialize("Timer1",1000)
    timer1.Enabled=True
End Sub

Sub Timer1_Tick
    Log ("tickt" & z )
    z=z+1
    If z=5 Then Teste
End Sub

Sub Teste
    Dim gesamt As String
    Dim MyJob  As HttpJob
    MyJob.Initialize("", Me)
       
    MyJob.Download("https://www.mysite.com")

    Wait For (MyJob) JobDone(MyJob As HttpJob)
    If MyJob.Success Then
        gesamt=MyJob.GetString
    End If
    Log("ERROR=" &     MyJob.ErrorMessage)
    MyJob.Release
    Log( gesamt)
End Sub

STARTER:
Sub Service_Create
    Dim jo As JavaObject
    jo.InitializeStatic("com.google.android.gms.security.ProviderInstaller")
    Dim context As JavaObject
    context.InitializeContext
    DisableStrictMode
    Dim listener As Object = jo.CreateEventFromUI("com.google.android.gms.security.ProviderInstaller.ProviderInstallListener", _
        "listener", Null)
    Log("Installing security provider if needed...")
    jo.RunMethod("installIfNeededAsync", Array(context, listener))
    Wait For listener_Event (MethodName As String, Args() As Object)
    If MethodName = "onProviderInstalled" Then
        Log("Provider installed successfully")
    Else
        Log("Error installing provider: " & Args(0))
    End If
End Sub

Sub DisableStrictMode
    Dim jo As JavaObject
    jo.InitializeStatic("android.os.Build.VERSION")
    If jo.GetField("SDK_INT") > 9 Then
        Dim policy As JavaObject
        policy = policy.InitializeNewInstance("android.os.StrictMode.ThreadPolicy.Builder", Null)
        policy = policy.RunMethodJO("permitAll", Null).RunMethodJO("build", Null)
        Dim sm As JavaObject
        sm.InitializeStatic("android.os.StrictMode").RunMethod("setThreadPolicy", Array(policy))
    End If
End Sub
 
Top