WLAN erhalten Direkte IP-Adresse meines Geräts

8

Ich versuche die IP-Adresse meines Geräts zu bekommen, aber alles vergebens und ohne Erfolg. Ich habe es versucht

%Vor%

aber es gibt mir 0.0.0.0 und keine andere Methode funktioniert auch .. Hilfe !!

    
Talib 28.11.2013, 10:36
quelle

7 Antworten

4

sendet die lokale IP-Adresse des Peers (beginnend mit 192.168.x.x) an den Gruppenbesitzer. Nach diesem "Handschlag", der keine Zeit braucht, ist es gut zu gehen. Ich habe keine andere Möglichkeit gefunden, die IP-Adresse des Peers zu erhalten. Die einzige Information, die von GroupListener / PeerListener / ... zur Verfügung gestellt wird, ist die MAC-Adresse.

    
kapil thadani 06.12.2013, 13:00
quelle
10

Nur als Hinweis: Ich bin der Entwickler des WiFi-Shoot (ein direkter Dateiübertragung App über WiFi Direct) .

Leider gibt es keine Möglichkeit, eine eigene IP-Adresse zu erhalten, und das allgemeine Funktionsprinzip ist etwas anders:

  • Alle Vorgänge werden mit dem WiFiP2PManager durchgeführt
  • rufe initialize auf, um einen Channel zu erhalten, alle anderen Operationen benötigen diesen Channel.
  • nachdem Sie discoverPeers und connect auf eins von ihnen
  • gesetzt haben
  • Sie können requestGroupInfo angeben, ob dieses Gerät der Gruppeninhaber ist und welche IP-Adresse des Gruppeneigentümers verwendet wird. So können Nicht-Besitzer eine Verbindung zum Eigentümer herstellen, indem sie die angegebene Adresse verwenden, und der Besitzer hört Verbindungen.
  • Sie können auch requestPeers angeben, die Ihnen eine Liste aller verbundenen Peers bietet. Dazu gehören MAC-Adressen und Namen.

Der Aufruf Context.getSystemService(Context.WIFI_P2P_SERVICE) gibt Ihnen einen WiFiP2PManager.

Und ja, Sie benötigen eine Reihe von WiFI-Berechtigungen wie ACCESS_WIFI_STATE , CHANGE_WIFI_STATE unter anderen.

    
Budius 06.12.2013 09:27
quelle
3
%Vor%     
Dipendra 24.04.2015 05:47
quelle
1

Verwenden Sie diesen Code

%Vor%

Fügen Sie Ihrem Manifest die Berechtigung hinzu.

%Vor%     
souvickcse 07.12.2013 21:02
quelle
0

Haben Sie Berechtigungen für die WLAN-Einstellungen, die an Ihr Android-Programmmanifest angehängt sind? Mindestens ACCESS_WIFI_STATE wird benötigt [1] . Wenn das nicht genug ist, wird auch ACCESS_NETWORK_STATE benötigt [2] . Ich habe nichts Schlechtes in deinem Code gefunden, also wäre es ein Vorschlag, mit Manifest zu spielen.

Der erste Link, den ich als Quelle habe, hat in der angenommenen Antwort auch INTERNET Erlaubnis, so dass Ihr Programm auch irgendwo Kontakt aufnehmen kann, um nach Verbindung und damit IP zu fragen. Das wäre die nächste Erlaubnis zu versuchen, wenn die beiden erstens nicht funktionieren.

Sie haben nach offiziellen oder glaubwürdigen Quellen gefragt, diese stammen von den glaubwürdigen Quellen. Jeder Informationsfrieden wird mindestens einmal auf Stackoverflow abgestimmt, und wenn etwas sagt, dass diese Sachen es zumindest für jemanden geschafft haben.

Meine Quellen:

[1] So erhalten Sie die IP-Adresse des Geräts aus dem Code ?

[2] Android WifiManager getConnectionInfo erfordert CHANGE_WIFI_STATE?

    
mico 05.12.2013 20:17
quelle
0

Wenn Sie versuchen, die IP-Adresse eines anderen Geräts mit dem WiFi-Netzwerk zu verbinden

%Vor%

Ermitteln der Internet-IP-Adresse, d. h. der Live-IP-Adresse

%Vor%

Für tiefer gehendes Wissen und andere native Methoden Brache Link

Ссылка

    
AndroidHacker 06.12.2013 11:19
quelle
0

Überprüfen Sie zunächst die Manifestdatei auf Berechtigungen:

%Vor%

Definieren Sie dann, wonach die IP sucht. Wenn Sie diese IP-Adresse für einen Zweck senden möchten, der über den Dienst hinausgeht, suchen Sie nach WIFI_SERVICE. Wenn Sie sich für die IP-Adresse Ihres Service-Broadcasts interessieren, hat die NsdServiceInfo-Instanz die getHost () -Methode.

    
pinxue 08.12.2013 05:21
quelle

Tags und Links