Android-Anwendung Wi-Fi-Gerät - AP-Konnektivität

Bin ich eine Anwendung erstellen, die Daten übertragen können zwischen einem mobilen und einem Wi-Fi-Gerät... Der mobile hat die AP aktiviert (durch den code) und ein anderes Gerät eine Verbindung zu diesem spezifischen Netzwerk... Wie kann ich das erkennen durch code zu sehen, die details der Geräte an das Netzwerk angeschlossen(AP)?** Gibt es dafür eine Lösung?

Habe ich gesehen, eine Anwendung namens Wifi Hot spot in HTC Desire, die diese Funktionalität zeigt die IP-Adressen der mit dem Netzwerk verbundenen Geräte. Wie kann das erreicht werden?

Check-out Kritik: Sprint Mobilen Hotspot auf dem HTC EVO 4G.

Es zeigt eine Anwendung, die eigentlich anzeigen der verbundenen Benutzer. Wie können wir das programmatisch? Gibt es eine API dafür?

Für die Erstellung eines access-points:

private void createWifiAccessPoint() {
    if (wifiManager.isWifiEnabled())
    {
        wifiManager.setWifiEnabled(false);
    }
    Method[] wmMethods = wifiManager.getClass().getDeclaredMethods(); //Get all declared methods in WifiManager class
    boolean methodFound = false;

    for (Method method: wmMethods){
        if (method.getName().equals("setWifiApEnabled")){
            methodFound = true;
            WifiConfiguration netConfig = new WifiConfiguration();
            netConfig.SSID = "\""+ssid+"\"";
            netConfig.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);
            //netConfig.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
            //netConfig.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
            //netConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
            //netConfig.preSharedKey = password;
            //netConfig.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
            //netConfig.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
            //netConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
            //netConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);

            try {
                boolean apstatus = (Boolean) method.invoke(wifiManager, netConfig,true);
                //statusView.setText("Creating a Wi-Fi Network \""+netConfig.SSID+"\"");
                for (Method isWifiApEnabledmethod: wmMethods)
                {
                    if (isWifiApEnabledmethod.getName().equals("isWifiApEnabled")){
                        while (!(Boolean)isWifiApEnabledmethod.invoke(wifiManager)){
                        };
                        for (Method method1: wmMethods){
                            if(method1.getName().equals("getWifiApState")){
                                int apstate;
                                apstate = (Integer)method1.invoke(wifiManager);
                                //                     netConfig = (WifiConfiguration)method1.invoke(wifi);
                                //statusView.append("\nSSID:"+netConfig.SSID+"\nPassword:"+netConfig.preSharedKey+"\n");
                            }
                        }
                    }
                }

                if(apstatus)
                {
                    System.out.println("SUCCESSdddd");
                    //statusView.append("\nAccess Point Created!");
                    //finish();
                    //Intent searchSensorsIntent = new Intent(this,SearchSensors.class);
                    //startActivity(searchSensorsIntent);
                }
                else
                {
                    System.out.println("FAILED");

                    //statusView.append("\nAccess Point Creation failed!");
                }
            }
            catch (IllegalArgumentException e) {
                e.printStackTrace();
            }
            catch (IllegalAccessException e) {
                e.printStackTrace();
            }
            catch (InvocationTargetException e) {
                e.printStackTrace();
            }
        }
    }
    if (!methodFound){
        //statusView.setText("Your phone's API does not contain setWifiApEnabled method to configure an access point");
    }
}
Das ist nicht richtig, der WLAN-Hotspot auf dem HTC Desire nicht zeigen Ihnen, welche Geräte mit dem gleichen WiFi-Netzwerk als der Wunsch, aber es eröffnet einen eigenen WiFi-Hotspot (und so ein WiFi-Netzwerk) und wirkt als eigenen access point. Das ist, warum es die Darstellung der angeschlossenen Geräte, denn es ist ein eigenes Netzwerk.
Ok....ich bin programmgesteuert herstellen zu können, einen WLAN-Access-point... Jetzt wird in der Lage sein, zu erkennen, die Geräte mit diesem Netzwerk verbunden sind ?
Wo sehen Sie essablish der Access-Point? Auf einem Nicht-Android-Gerät? Dann ja. Auf Android wird es ziemlich schwierig, ohne root-Zugriff, um die Daten in eine normale app.
Ich bin zur Gründung der access point auf einem android-Gerät...
Dein code funktioniert einwandfrei, aber auf meinem htc desire, wenn ich auf die hot-spot-Programm - DHCP deaktiviert..... WARUM???????

InformationsquelleAutor Arun Abraham | 2011-03-08

Schreibe einen Kommentar