Beiträge von Tobi

    Hallo zusammen,
    ich möchte mit meinem Android Smartphone einen Bluetooth SPP Server erstellen, welcher auf Verbindungen mit bereits gekoppelten Geräten wartet. (Ich denke eine Android Watch könnte ähnlich funktionieren)
    Die Verbindung sollte SPP benutzen, da ich anschließend bytestreams hin- und herschicken möchte.


    Wenn eine spezielle Activity geöffnet wird, soll auf eingehende Verbindungen gewartet werden und diese akzeptiert werden.
    Es sollte ähnlich wie folgende app sein ( nur halt sever anstatt client):
    https://play.google.com/store/…android.BLE_SPP_PRO&hl=de


    hoffe ihr könnt mir helfen.
    Danke:)

    Hallo Zusammen,
    ich habe ein Problem und hoffe ihr könnt mir helfen.
    Ich möchte in meiner Android App einem einem Activity (Activity_Passwort_Abfragen) eine Passwort/Pin-Abfrage implementieren. Über die Action Bar öffnet sich ein zweites Activity (Activity_Passwort_Setzen) in dem das Passwort gesetzt werden kann.
    Ich brauche hierfür etwas was auch nach dem Neustart der App seinen Wert behält. Hier bin ich auf die SharedPreferences gestoßen.
    Hier die Passwort Abfrage:


    In der zweiten Activity soll nun das Passwort durch Knopfdruckt geändert werden:

    Java
    edit.putString("user_pin", user_pin);

    Jedoch wird der Pin jedesmal beim Starten der App überschrieben, da er immer auf den default werd durch die oNCreate-Methode gesetzt wird. Wie kann ich dieses Problem umgehen?
    Gibt es eventuell andere Ansätze?


    Vielen Dank für die Hilfe :)
    Tobi

    Zunächst Danke für die Antworten



    1. das wird normalerweise ganz tief versteckt im Kernel gemacht. OTG geht so: Kurzschluß am ID pin erkennen (das macht Hardware und löst einen Interrupt aus), Wandler von Akkuspannung im Gerät auf 5V einschalten und warten dass sich das angeschlossene Gerät per USB-Protokoll meldet (dann wird ausgehandelt wie schnell es ist, welchen Strom es haben will und was für ein Gerät es ist). Das alles bekommt man in Android selbst auf der Kommandozeile (adb) nicht mit. Nur das Ergebnis dass z.B. ein USB-Speicherstick erkannt wurde. Falls Du extrem viel Glück hast, gibt es bei Deinem Kernel im /sys eine Möglichkeit das gezielt zu schalten.


    2. Bits auf USB-Bus schreiben geht auch nur wenn Du einen Kerneltreiber für den USB-Controller auf Deinem speziellen Prozessor hast. Dann gibts entweder einen Test-Mode wo man gezielt Spannungen auf D+ oder D- schalten kann (0, floating, 3,3V). Oder man kann den USB-Port auf UART schalten (falls das eingebaut ist). Aber alles das geht nicht auf Android-Ebene sondern Du mußt ein Cyanogenmod installieren und den Kernel hacken.

    Ja ich denke auch dass es durchaus einfachere Möglichkeiten wie z.B. das Verwenden eines Bluetooth Moduls oder wenn ich es wirklich über USB mache, dann einen USB-fähigen Mikrocontroller verwenden.


    Das heißt wenn ich wirklich nichts dazwischen schalten (also kein µC) will, dann muss ich tief im Kernel Dinge abändern von denen ich keine Ahnung hab? Wie meinst du das mit "/sys in meinem kernel"?


    Das Problem in meiner Konzept ist auch dass das Smartphone ja eigentlich nicht mit dem Mosfet kommunizieren kann. Das heißt es wird ja sicherheit keine Rückmeldung vom Mosfet erhalten.

    Hi,


    ich würde das Konzept mit dem USB-OTG noch mal grundsätzlich überdenken. Ich selber habe schon mal über USB-OTG und das IOIO Board diverse Experimente gemacht und sogar gute Ergebnisse erzielt. Allerdings ist das abhängig vom verwendeten Smartphone/Tablet und man kann sich nicht darauf verlassen, dass die zukünftigen Geräte sich identisch verhalten.

    Ich nehme also an dass dieses IOIO Board von dem du redest eine Mikrocontroller besitzt und du ganz normal über USB mit diesem kommunizierst? Das wäre dann ja auch wieder die Methode normale USB Kommunikation mit einem µC oder?

    Zunächst einmal vielen Dank für deine ausführliche Antwort. Jetzt habe ich allerdings noch ein paar fragen.


    1. Bist du dir sicher dass es nicht möglich ist den USB Host Mode softwareseitig ein- und auszuschalten und somit die Spannung hinzuzuschalten? Wie wird der Host denn dann aktiviert? Der USB OTG Adapter is ja eigentlich nur ne Brücke zwischen Masse und ID. Also wie funktioniert das ganze mit dem USB OTG?
    Ich denke wenn ich den Host Mode manuell ein und ausschalte wird es auf jedenfall funktionieren, jedoch muss das ja irgendwie mit software realisierbar sein...


    2. Ist es überhaupt möglich einfach Bits auf den USB Bus zu geben, denn das Mosfet ist ja eigentlich kein Device mit dem das Smartphone kommunizieren kann, ist ja kein Mikrocontroller oder sowas. Ich habe dazu mal ein Schema erstellt wie meine idee war (s. Anhang)


    3. Hast du eine andere Idee wie ich so günstig wie möglich ein Signal aus dem Smartphone bekomme um das Mosfet zu schalten?




    Danke für die Hilfe! :)

    Zunächst einmal Danke für die ausführliche Antwort:)


    Dass dies nicht softwareseitig zu wechseln geht is natürlich sehr blöd...


    Die Spannungsversorgung des Mosfets ist allerdings extern und die Spannung des Smartphones wird lediglich als Gatespannung zum Versorgen des Mosfets benötigt.
    Hierbei liegt die dauert bei ca. 100 ms.


    Vielleicht wäre es eine Möglichkeit das Smartphone dauerhaft als Host zu versorgen. Dann müsste ich allerdings eine Datenleitung an das Gate anschließen..
    Hier ist dann aber die Möglichkeit ob es möglich ist einen 100 ms langen High-Pegel über Data+ zu senden. Was denkt ihr darüber?

    Guten Tag Zusammen,
    Ich bin volllkommen neu in der Android App Programmierung und hätte nun mal eine Frage an euch.
    Ich möchte ein Projekt realisieren, in dem ich mit einem Android Smartphon ein Schloss schalten möchte... Das ganze soll über ein Kabel funktionieren, da ich nicht extra noch ein Bluetooth Modul für das schloss bauen möchte.
    Ich hatte bereits folgenden Ansatz:


    Um das Schloss zu Öffnen möchte ich ein Mosfet schalten welches vom Smartphone gesteuert wird. Wenn ich über USB OTG das Smartphone als Host festlege, sollte dieses ja die SPannungsversorgung bereitstellen.


    Jetzt ist meine Frage ob es möglich ist softwaretechnisch zwischen USB Host und Accessory Mode zu wechseln und somit die Spannung auf der USB Schnittstelle an- und auszuschalten? Gerne bin ich auch für andere Konzepte offen.


    Vielen Dank im Voraus
    Tobi