Beiträge von nono124

    Was steht denn im Antwortstring?
    Wird überhaupt eine Verbindung zum Server Steuerung aufgebaut.
    Versuche mal eine Datei vom Server zu lesen.
    Notfalls richte dir einen Server ein auf den du mit dem win Programm Daten sendest als ob es deine Steuerung wäre. Dann kannst du sehen was da geschickt wird.
    Und was dein Handy schickt.


    Ps. Könntest auch einen Http Sniffer benutzen und die Verbindung zum Server Steuerung mit dem Windows Programm aufzeichnen.
    z.B. HTTPNetworkSniffer

    hier noch ein recht sinvolles Video

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Hi dein String so wie er am Anfang war ist schon richtig auch die Zeilenumbrüche "/n" (UTF-8 %0A) stimmen.
    Nur hast du ihn nicht in den Zeichensatz UTF-8 Konvertiert das macht URLEntcoder.
    Dein String vom Anfang sieht bei mir so aus.

    Code
    %3C%3Fxml+version%3D%221.0%22+encoding%3D%22UTF-8%22%3F%3E%0A+%3CDevices%3E%0A+%3CDevice%3E%0A+%3CID%3EEZR0114AF%3C%2FID%3E%0A+%3CHEATAREA+nr%3D%224%22%3E%0A+%3CT_TARGET%3E18.7%3C%2FT_TARGET%3E%0A+%3C%2FHEATAREA%3E%0A+%3C%2FDevice%3E%0A+%3C%2FDevices%3E

    in welchen Zeichensatz deine Steuerung es haben will weiss ich nicht.


    Zitat

    im LogCat für data folgendes ausgegeben:
    +%3CDevices%3E+%3CDevice%3E+%3CID%3EEZR0114AF%3C%2FID%3E+%3CHEATAREA+nr%3D%224%22%3E+%3CT_TARGET%3E18.0%3C%2FT_TARGET%3E+%3C%2FHEATAREA%3E+%3C%2FDevice%3E+%3C%2FDevices%3E
    Das kann ja eigentlich auch nicht richtig

    ist schon richtig nur fehlt bei dir die erste Zeile und der Zeilenumbruch.
    Die erste Zeile <?xml version=\"1.0\" encoding=\"UTF-8\"?> wird aber die API brauchen.
    Ein in UTF-8 Kodirter Text sieht nun mal so aus mit den Prozent Zeichen. Schaue dir die Zeichensätze im Internet mal an.
    ASCII hatte immer nur ein Byte pro Zeichen somit sind max 256 Zeichen (Druckbar oder auch nicht Druckbare Zeichen wie 0A 0C) möglich das reichte nicht für alle möglichen Zeichen und Sprachen( Chinesische Schriftzeichen) aus, also erfand man den Unicode der 32 Bit breit ist . Um Speicherplatz und Bandbreite zu sparen wurde der UTF-8 erfunden.



    Der meist für Http benutz wird.


    auch könnte es sinvoll sein die parameter in der URLConnection zu setzen


    con.setRequestProperty( "Content-Type","application/x-www-form-urlencoded" );
    con.setRequestProperty( "charset", "utf-8");
    con.setRequestProperty( "Content-Length", String.valueOf(data.getBytes().length) );


    Mal eine andere Frage die Premission hast du gesetzt oder?

    So also den zwischenschrit mit String.format( ...) brauchst du nicht .
    Die übersetzung mit URLEntcoder ja.
    Ob wirklich der UTF-8 Zeichensatz verwendet werden muss oder ein anderer weiss ich nicht genau dazu müsste ich mir nochmal deine API anschauen.



    String data = URLEncoder.encode(postString, "UTF-8");
    OutputStreamWriter output = new OutputStreamWriter(conn.getOutputStream());
    output.write(data);
    output.flush() ;

    Bin mir auch ziemlich sicher das es in dem String mit "\n" nicht geht .
    Denn das ist eigentlich eine formatanweisung für eine neue zeile die Übersetzt werden muss. Mit sicherheit wird genau "\n" in deinen String und somit auch in deiner übertragennen Datei stehen. Und nicht z.B. ASCII 0x0A oder 0x0C für LF CR.
    Wenn dann Formatiere deinen String mit "format" ,und mit URLEncoder.encode wird er auch in den richtigen Zeichensatz konvertiert.

    Die API wird gehen teste es mit deinem Browser sowie in dem PDF File, oder nutze das win Programm . Ich denke es wird gehen. Es liegt mit sicherheit an der Übertragung zu dem Server vom Handy. An der API kann und will ich nicht glauben das wird der Hersteller getestet haben.
    Denke du musst dich noch etwas mit dem http Protokoll und der httpconnect beschäftigen.


    In deinem Code hast du es auch nicht so gemacht wie in dem Beispiel.

    ok du Kompilierst immer noch auf SDK 26 Fehler war scheinbar die falsche Suportlib.
    Der Constructor ist eigentlich auch erst ab API 26.1 veraltet. Du hast aber API 26 auf dem Handy.
    Teste mal andere Farbe.
    oder Kompiliere mit API 25 um ganz sicher zu gehen dann wird immer das alte Notification system benutz.
    Auch wenn das Handy A8 oder höher hat. sieht dann für das Handy so aus als wenn die App vor Jahren unter A7 geschrieben wurden ist wo es noch kein A8 gab.


    Übrigens soltest du die minSdkVersion nicht auf 26 setzen sonst kannst du es auf ältern Handys nicht instalieren.

    Hi setze mal compileSdkVersion 25, targetSdkVersion 25, buildToolsVersion '27.0.3' weglassen


    Was mich wundert ist das du die support V4 nicht lädst.
    Auch das du die Suport:appcompat-v7:23.4.0' in der Version 23 und nicht 27 lädst da kommt normaleweise ein fehler weil


    CompileSDK und SpportLib nicht zusammen passen.



    also versuche deine App auf der alten SDK 25 zu Comileren
    die SupportLibs müssen auch eine 25 API haben glaube 25.0.1 musst du schaun.


    es sieht für mich aus als ob das erst eine Version für AS 2.3. war.


    ps. Support 25.4.0 ist die neuste

    kann dir da leider auch nicht helfen habe kein Handy mit Android 8. Vielleicht liegt es an dem Huawei und weniger an Android 8. Du könntest eine einfache apk machen und die bei Freunden mit anderen Handys und a8 testen.


    Was mir noch einfällt wie sieht dein greadle File aus? Hast du auch die Supportlib geladen?

    Hi, zum Debuging mit Wifi.
    Installiere Dir das Plugin "Android WiFi ADB" in Android Studio. Anschliesend AS neu Starten.
    Nun musst du ein mal mit dem Kabel Verbinden und das neu Icon in der Menue Leiste klicken, danach geht es one Kabel über WiFi.

    Welsche API Version hat das Huawei?
    Das es auf deinen anderen Handys geht hättest du uns auch sagen können.


    Dein Mate 9 dürfte schon Android 8 API 26 haben . Benutze den ersten Constructor mal.