it-swarm.com.de

Wie verbinde ich Android wifi zu adhoc wifi?

Ich bin neu auf dem Android System. Ist das richtig, das Android 2.2.1 WIFI erkennt nur Nicht-Ad-hoc-Funknetzwerke? Ich habe mich gefragt, ob Es gibt eine Möglichkeit, mein Android von meinem Laptop aus mit einem Ad-hoc-Netzwerk zu verbinden.

61
Cyril Horad

Sie haben Recht, dass dies derzeit in Android nicht nativ unterstützt wird, obwohl Google seit dem offiziellen Start von Android angekündigt hat, dass es kommen wird.

Obwohl dies nicht von Haus aus unterstützt wird, wird es von der Hardware auf allen Android Geräten unterstützt, die bisher veröffentlicht wurden. Es ist nur in der Software deaktiviert, und Sie müssen es aktivieren, um diese Funktionen nutzen zu können.

Es ist jedoch ziemlich einfach, dies zu tun, aber Sie müssen als Root angemeldet sein, und die Besonderheiten können sich zwischen den verschiedenen Geräten geringfügig unterscheiden. Ihre beste Quelle für weitere Informationen zu diesem Thema wären XDA-Entwickler: http://forum.xda-developers.com/forumdisplay.php?f=564 . Die meisten der vorhandenen Lösungen basieren auf dem Ersetzen von wpa_supplicant. Diese Methode würde ich auf Ihrem Gerät nach Möglichkeit empfehlen. Weitere Informationen finden Sie unter http://szym.net/2010/12/adhoc-wifi-in-Android/ .

Update : Es ist jetzt ein paar Jahre her und wann immer ich eine Ad-hoc-Verbindung benötige Verbindung auf meinem Telefon verwende ich CyanogenMod . Sie erhalten programmgesteuerten und skriptgesteuerten Zugriff auf diese Funktionen sowie die Möglichkeit, im Menü "WLAN-Einstellungen" ad hoc (ibss) Netzwerke zu erstellen.

38
Andy

Wenn Sie speziell ein Ad-hoc- Drahtlosnetzwerk verwenden möchten, ist Andys Antwort Ihre einzige Option. Wenn Sie jedoch nur die Internetverbindung Ihres Laptops über WLAN mit allen erforderlichen Mitteln teilen möchten, haben Sie mindestens zwei weitere Optionen:

  1. Verwenden Sie Ihren Laptop als Router, um mit Virtual Router oder Connectify einen WLAN-Hotspot zu erstellen. Eine schöne Anleitung finden Sie hier .
  2. Verwenden Sie das Wi-Fi Direct -Protokoll, das eine direkte Verbindung zwischen allen Geräten herstellt, die es unterstützen, obwohl die Unterstützung für Android Geräte ist begrenzt *) und für Windows die Funktion wahrscheinlich ist nur Windows 8 sein.

* Einige Telefone mit Android 2.3 haben proprietäre Betriebssystemerweiterungen, die Wi-Fi Direct ermöglichen (meist neuere Samsung-Telefone), aber Android 4 sollte dies voll unterstützen (- Quelle ).

15
Silveri

Ich habe hier etwas Interessantes bemerkt: Auf meinem 2.3.4-Telefon werden AP/AdHoc-SSIDs im Menü Einstellungen> Drahtlos und Netzwerke nicht angezeigt. Auf einem Acer A500 mit 4.0.3 sehe ich sie mit dem Präfix (*)

In dem folgenden Code, den ich angepasst habe (ich kann mich nicht an die Quelle erinnern, sorry!), Wird jedoch Ad-hoc im Wifi-Scan auf meinem 2.3.4-Telefon angezeigt. Ich bin immer noch auf der Suche, um tatsächlich eine Buchse + Input/OutputStream zu verbinden und zu erstellen. Aber los geht's:

    public class MainActivity extends Activity {

private static final String CHIPKIT_BSSID = "E2:14:9F:18:40:1C";
private static final int CHIPKIT_WIFI_PRIORITY = 1;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    final Button btnDoSomething = (Button) findViewById(R.id.btnDoSomething);
    final Button btnNewScan = (Button) findViewById(R.id.btnNewScan);
    final TextView textWifiManager = (TextView) findViewById(R.id.WifiManager);
    final TextView textWifiInfo = (TextView) findViewById(R.id.WifiInfo);
    final TextView textIp = (TextView) findViewById(R.id.Ip);

    final WifiManager myWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
    final WifiInfo myWifiInfo = myWifiManager.getConnectionInfo();

    WifiConfiguration wifiConfiguration = new WifiConfiguration();
    wifiConfiguration.BSSID = CHIPKIT_BSSID;
    wifiConfiguration.priority = CHIPKIT_WIFI_PRIORITY;
    wifiConfiguration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
    wifiConfiguration.allowedKeyManagement.set(KeyMgmt.NONE);
    wifiConfiguration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
    wifiConfiguration.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);
    wifiConfiguration.status = WifiConfiguration.Status.ENABLED;

    myWifiManager.setWifiEnabled(true);

    int netID = myWifiManager.addNetwork(wifiConfiguration);

    myWifiManager.enableNetwork(netID, true);

    textWifiInfo.setText("SSID: " + myWifiInfo.getSSID() + '\n' 
            + myWifiManager.getWifiState() + "\n\n");

    btnDoSomething.setOnClickListener(new View.OnClickListener() {          
        public void onClick(View v) {
            clearTextViews(textWifiManager, textIp);                
        }           
    });

    btnNewScan.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            getNewScan(myWifiManager, textWifiManager, textIp);
        }
    });     
}

private void clearTextViews(TextView...tv) {
    for(int i = 0; i<tv.length; i++){
        tv[i].setText("");
    }       
}

public void getNewScan(WifiManager wm, TextView...textViews) {
    wm.startScan();

    List<ScanResult> scanResult = wm.getScanResults();

    String scan = "";

    for (int i = 0; i < scanResult.size(); i++) {
        scan += (scanResult.get(i).toString() + "\n\n");
    }

    textViews[0].setText(scan);
    textViews[1].setText(wm.toString());
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

Vergessen Sie nicht, dass Sie in Eclipse Strg + Umschalt + [Buchstabe O] verwenden können, um die fehlenden Importe auszufüllen ...

und mein Manifest:

    <manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
package="com.digilent.simpleclient"
Android:versionCode="1"
Android:versionName="1.0" >

<uses-sdk
    Android:minSdkVersion="8"
    Android:targetSdkVersion="15" />
<uses-permission Android:name="Android.permission.ACCESS_WIFI_STATE"/>
<uses-permission Android:name="Android.permission.CHANGE_WIFI_STATE"/>

<application
    Android:icon="@drawable/ic_launcher"
    Android:label="@string/app_name"
    Android:theme="@style/AppTheme" >
    <activity
        Android:name=".MainActivity"
        Android:label="@string/title_activity_main" >
        <intent-filter>
            <action Android:name="Android.intent.action.MAIN" />

            <category Android:name="Android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

Hoffentlich hilft das!

5
Chris

Wenn Sie einen Microsoft Virtual WiFi Miniport Adapter als einen der verfügbaren Netzwerkadapter haben, können Sie Folgendes tun:

  • Führen Sie Windows Command Processor (cmd) als Administrator aus
  • Art: netsh wlan set hostednetwork mode=allow ssid=NAME key=PASSWORD
  • Dann: netsh wlan start hostednetwork
  • Öffnen Sie "Systemsteuerung\Netzwerk und Internet\Netzwerkverbindungen"
  • Klicken Sie mit der rechten Maustaste auf Ihren aktiven Netzwerkadapter (den, mit dem Sie eine Verbindung zum Internet herstellen), und klicken Sie dann auf Eigenschaften
  • Öffnen Sie dann die Registerkarte Freigabe
  • Aktivieren Sie "Anderen Netzwerkbenutzern erlauben, eine Verbindung herzustellen ..." und wählen Sie Ihren WiFi-Miniport-Adapter aus
  • Wenn Sie fertig sind, geben Sie ein: netsh wlan stop hostednetwork

Das ist es!

Quelle: Wie Sie Android Telefon mit einem Ad-hoc-Netzwerk ohne Software verbinden.

5
w35l3y

Sie haben Recht, aber beachten Sie, dass Sie es auch anders herum machen können - verwenden Sie Android Wifi Tethering, das das Telefon als Basisstation einrichtet und vom Laptop aus eine Verbindung zu dieser Basisstation herstellt.

1
gby