Wie kann ich Nachrichten zwischen 2 Android-Geräten über WLAN und Bluetooth ohne Internet austauschen?

7

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:

  1. Gibt es eine Möglichkeit, Nachrichten über WLAN zwischen 2 Android-Geräten ohne Internet zu senden?

  2. Gibt es eine Alternative, da Ad-hoc nicht unterstützt wird?

  3. 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.

  4. 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.

user452730
quelle
Entschuldigung, aber Entwicklungsfragen sind hier nicht zum Thema und gehören zu Stack Overflow . Bitte werfen Sie einen Blick auf unsere FAQ, um zu sehen, was auf dieser Website zum Thema steht.
Eldarerathis
3
Ich denke, diese Frage ist fair für diese Seite. Es wird mehr gefragt, ob das Gewünschte technisch möglich ist, nicht so sehr eine Programmierlösung. (Das heißt, ich denke, es hätte auch bei Stack Overflow gefragt werden können , aber in seinem aktuellen Format würde wahrscheinlich hier
Ale
1
@AlEverett: Ich bin mir nicht sicher, ob ich das in diesem Fall sehe, aber so oder so: Ich glaube nicht, dass der neue Titel wirklich widerspiegelt, wonach das OP sucht. Antwort "Wie mache ich das?" als Endbenutzer kann viel anders sein als "Wie mache ich das?" als Entwickler IMHO. Die Antwort auf Nummer 3 in der Liste wäre beispielsweise die Verwendung einer WLAN-Tethering-App, die den Infrastrukturmodus unterstützt. Ich denke nicht, dass dies wirklich hilfreich ist, wenn Sie versuchen, es selbst zu implementieren, es sei denn, Sie verwenden nur den Quellcode aus der Tethering-App oder machen ihn zur Voraussetzung für die Verwendung Ihrer eigenen App.
Eldarerathis
Auch aus Anwendersicht: Diese Frage könnte verwandt sein, obwohl ich denke, dass sie nur Voice-over-WLAN (ohne Internetzugang) speziell abdeckt.
Eldarerathis
Ja, danke, dass Sie darauf hingewiesen haben. Es tut mir leid, dass ich die Tatsache, dass diese Website sich mit der Entwicklung befasst, als selbstverständlich angesehen habe. Könnte jemand von Ihnen sie dorthin migrieren oder sollte ich sie erneut veröffentlichen?
user452730

Antworten:

3

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

Atul Goyal
quelle
Ein Vorteil der Verwendung einer externen WLAN-Verbindung war, dass die Reichweite mit Ad-hoc aus Android viel mehr als möglich sein kann (selbst wenn wir Ad-hoc aus Android erstellen könnten)
Atul Goyal
Vielen Dank an Atul für Ihre schnelle Antwort. Was meinen Sie mit "einer lokalen WLAN-Verbindung in der Nähe, mit der eine Verbindung hergestellt werden kann"? Ich denke, dies geschieht nur über einen Zugangspunkt, oder?
user452730
Ja. Entschuldigung, wenn ich nicht klar war.
Atul Goyal
1

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.

Lie Ryan
quelle