hi,
I was writing a app which when starts search fr a specific wifi-128
bit and connects to it..
I am able to connect to wifi but not getting ip from DHCP server
rather i am getting ip from zeroconf.
however when i try to connect my device to wifi by manually going to
Wifi Settings and then choosing network it gets ip from DHCP.



package com.wifi;

import java.io.PrintWriter;
import java.net.Socket;
import java.util.List;

import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

ACTIVITY:

public class Mywifi extends Activity implements OnClickListener {

        public WifiManager manager;
        BroadcastReceiver receiver;
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.mywifi);

                //Test
                System.out.println("Mywifi called");

                // Setup UI
                View b1=findViewById(R.id.Scan);
                b1.setOnClickListener(this);
                View b2=findViewById(R.id.Send);
                b2.setOnClickListener(this);

                //Setup Wifi
                manager = (WifiManager) getSystemService(Context.WIFI_SERVICE);

                //Register Receiver
                IntentFilter filter =new IntentFilter();


                filter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);

                filter.addAction(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION);
                if (receiver == null)
                        receiver = new WifiReceiver(this);
                registerReceiver(receiver,filter);

        }

        public void onClick(View v) {
                // TODO Auto-generated method stub
                switch (v.getId()){

                case R.id.Scan:
                        manager.startScan();
                        Toast.makeText(this, "Scan Started!!",
                                        Toast.LENGTH_SHORT).show();

                        break;
                case R.id.Send:

                        try {

                                Toast.makeText(this, "Sending before socket!!",
                                                Toast.LENGTH_SHORT).show();
                                Socket clientSocket = new Socket("10.2.28.122", 
5000);
                                PrintWriter outToServer = new PrintWriter(
                                                
clientSocket.getOutputStream(),true);
                                outToServer.println("3 pt 1 0");
                                Toast.makeText(this, "Sending!!",
                                                Toast.LENGTH_SHORT).show();
                        } catch (Exception e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();

                                Toast.makeText(this, "Exception !! :'(",
                                                Toast.LENGTH_SHORT).show();
                        }
                        break;
                }
        }
}


RECEIVER:



package com.wifi;

import java.util.List;



import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.DhcpInfo;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiConfiguration.AuthAlgorithm;
import android.net.wifi.WifiConfiguration.GroupCipher;
import android.net.wifi.WifiConfiguration.KeyMgmt;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.widget.Toast;

public class WifiReceiver extends BroadcastReceiver{

        Mywifi mywifi;
        int added=0;
        public WifiReceiver(Mywifi object2) {
            super();
            this.mywifi = object2;
            System.out.println("Wifi Receiver");

          }
        @Override
        public void onReceive(Context context, Intent intent) {
                // TODO Auto-generated method stub

                List<ScanResult> results = mywifi.manager.getScanResults();
                Toast.makeText(mywifi, "On Receive Called!!",
Toast.LENGTH_SHORT).show();
                System.out.println("On Receive Called!!");


        
if(intent.getAction().equals(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)&&
added==0) {
                        Toast.makeText(mywifi,"Scan Results available",
Toast.LENGTH_SHORT).show();
                int test=0;
                for (ScanResult result:results)
                {
                        Toast.makeText(mywifi,"Serching for our wifi",
Toast.LENGTH_SHORT).show();
                        Toast.makeText(mywifi,result.SSID+" Found!!",
Toast.LENGTH_SHORT).show();
                        if(result.SSID.equals("CBSlinksys"))
                        {
                                Toast.makeText(mywifi,"Our wifi found!! :)",
Toast.LENGTH_SHORT).show();
                                test=1;
                                System.out.println("varified");

                                //setting up the wifi

                                WifiConfiguration mywificonf =new 
WifiConfiguration();

                                mywificonf.SSID ="\""+result.SSID+"\"";
                                mywificonf.BSSID=result.BSSID;
                                mywificonf.hiddenSSID=false;



                                //accessing security
                        mywificonf.allowedAuthAlgorithms.clear();
                        mywificonf.allowedGroupCiphers.clear();
                        mywificonf.allowedKeyManagement.clear();
                        mywificonf.allowedPairwiseCiphers.clear();
                        mywificonf.allowedProtocols.clear();
                        
mywificonf.allowedAuthAlgorithms.set(AuthAlgorithm.OPEN);
        
mywificonf.allowedAuthAlgorithms.set(AuthAlgorithm.SHARED);
                    mywificonf.allowedKeyManagement.set(KeyMgmt.NONE);
                    mywificonf.allowedGroupCiphers.set(GroupCipher.WEP40);
                    mywificonf.allowedGroupCiphers.set(GroupCipher.WEP104);

                                mywificonf.wepKeys[0] = "\"1234567890\"";
                                mywificonf.wepKeys[1] = "\"1234567890\"";
                                mywificonf.wepKeys[2] = "\"1234567890\"";
                                mywificonf.wepKeys[3] = "\"1234567890\"";
                                mywificonf.priority=100000;
                                mywificonf.wepTxKeyIndex=0;

                                //add this to configured network
                                int netId = 
mywifi.manager.addNetwork(mywificonf);
                                if(netId < 0) {
                                        System.out.println("Unable to add 
network configuration for our
SSID: "+mywificonf.SSID);
                                        Toast.makeText(mywifi,"Unable to add 
network configuration for
our SSID: "+mywificonf.SSID, Toast.LENGTH_LONG).show();
                                        added=1;
                                        return;
                                }

                                else{
                                        System.out.println("Updated!!");
                                        Toast.makeText(mywifi,"Updated!!", 
Toast.LENGTH_SHORT).show();
                                }
                                //connet to mywifi
                                boolean 
success=mywifi.manager.enableNetwork(netId, true);
                                if(success){
                                        System.out.println("Successfully 
connected!! :D");
                                        Toast.makeText(mywifi,"Successfully 
Connected !! :D",
Toast.LENGTH_SHORT).show();
                                        added=1;

                                        break;

                                }
                                else{
                                        System.out.println("Connection Failed!! 
:(   Returning...");
                                        Toast.makeText(mywifi,"Connection 
Failed!! :(   Returning...",
Toast.LENGTH_LONG).show();
                                        return;
                                }

                        }
                }
                if(test==0){
                        System.out.println("Required Wifi not found!!");
                        Toast.makeText(mywifi,"Our Wifi not found!! :(",
Toast.LENGTH_SHORT).show();
                }
                }
        
if(intent.getAction().equals(WifiManager.NETWORK_STATE_CHANGED_ACTION))
                 {
                         Toast.makeText(mywifi,"Network state Changed!!",
Toast.LENGTH_SHORT).show();
                        WifiInfo mywifiinfo= mywifi.manager.getConnectionInfo();
                        System.out.println("Current connection
SSID:"+mywifiinfo.getSSID());
                        Toast.makeText(mywifi,"Current connection SSID:
"+mywifiinfo.getSSID(), Toast.LENGTH_SHORT).show();
                        int ipadd=mywifiinfo.getIpAddress();
                        System.out.println("Connection ip address:"+ipadd);
                        Toast.makeText(mywifi,"Connection ip address: "+ipadd,
Toast.LENGTH_LONG).show();
                        String myipadd;
                        myipadd=((ipadd & 0xFF)+"."+(ipadd>>8 & 
0xFF)+"."+(ipadd>>16 & 0xFF)
+"."+(ipadd>>24 & 0xFF));
                        Toast.makeText(mywifi,"Connection ip address: "+myipadd,
Toast.LENGTH_LONG).show();

                }
        }
}

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to