Ich arbeite derzeit an der Erstellung einer Anwendung für mobile Geräte mit Android, die Nachrichten über lokale Mittel wie WLAN und Bluetooth senden und empfangen kann. Nachdem ich darüber recherchiert hatte, stellte ich fest, dass Android nicht über eine native WLAN-Ad-hoc-Funktionalität verfügt und dass der einzige Weg, dies zu erreichen, darin besteht, Ihr Gerät zu rooten und den wpa_suplicant und einige andere ähnliche Methoden zu patchen, die nicht für jedes Gerät generisch sind .
Zusammenfassung dessen, was ich erreichen möchte:
Eine Anwendung für Android, die nach Geräten in der Nähe sucht und versucht, automatisch eine Verbindung zu ihnen herzustellen. Wenn das andere Gerät diese Anwendung ebenfalls installiert hat, akzeptiert es automatisch jede empfangene Verbindungsanforderung und sendet beim Herstellen der Verbindung eine Nachricht zurück, die sicherstellt, dass diese App installiert ist, sodass beide automatisch Nachrichten austauschen können und die Benutzer dies nicht tun. Sie müssen das Senden / Empfangen in Echtzeit nicht zulassen / verweigern.
Meine Fragen sind:
Gibt es eine Möglichkeit, Nachrichten über WLAN zwischen 2 Android-Geräten ohne Internet zu senden?
Gibt es eine Alternative, da Ad-hoc nicht unterstützt wird?
Wenn die Antwort auf 2 Nein lautet, kann eines der Geräte zu einem Zugangspunkt gemacht werden, damit das andere eine Verbindung herstellen kann und umgekehrt.
Ist es bei Bluetooth möglich, das Zulassen / Verweigern des Popups einer eingehenden Verbindung und den Pairing-Vorgang zu überspringen oder zu automatisieren?
Ich würde mich freuen, wenn Sie mir eine Antwort auf diese und / oder Vorschläge geben könnten.
quelle
Antworten:
Ich habe selbst an einem ähnlichen Projekt gearbeitet, bei dem wir nicht nur Textnachrichten, sondern auch Audio-Chat (Echtzeit) wollten. Wie Sie bereits erwähnt haben, unterstützt Android die Ad-hoc-WLAN-Funktionalität derzeit nicht wirklich (wie Sie bereits sagten, ist das Patchen des wpa_suplicant nicht generisch, und ehrlich gesagt würde ich diese Methode als nutzlos bezeichnen.) Auch als Ihre Anforderungen wollte ich es Verwenden Sie NICHT das Internet, um keinen anderen Weg zu finden. Für diese Zeit habe ich nur eine lokale WLAN-Verbindung in der Nähe verwendet, um eine Verbindung herzustellen (nur um klar zu sein, wir verwenden immer noch kein Internet). Ich hoffe, dies antwortet möglicherweise Ihre Punkte 1/2/3. Ich bin mir nicht sicher, ob es mindestens eine bessere Lösung für 1/2/3 gibt, solange Android-Leute nicht zulassen, dass ein Ad-hoc erstellt wird (oder zumindest beigetreten wird.
In Bezug auf 4 tut es mir wieder leid zu sagen, dass die Antwort darauf auch "Nein" ist. Wenn zwei Geräte zum ersten Mal verbunden werden, muss eine Kopplung erfolgen. Soweit ich mich erinnere (ich habe dieses Projekt vor einigen Monaten durchgeführt und keine Zeit gehabt, weiterzumachen / darauf aufzubauen), für nachfolgende Verbindungen zu bereits gekoppelten Geräten wurde keine Bestätigung außer unserer eigenen Bestätigung angefordert, die wir gebeten, eingehende Sprachanrufe anzunehmen. Abgesehen von dieser Bluetooth-Methode hat es tatsächlich einwandfrei funktioniert.
Hoffe das hat geholfen. Lassen Sie mich wissen, ob ich etwas näher erläutern kann.
-Atul
quelle
Dieser Anwendungsfall hat jetzt eine offensichtliche langfristige Lösung: Android Beam / NFC. Da jedoch noch nicht viele Geräte NFC unterstützen, sind andere Techniken erforderlich.
quelle