解决方案 »

  1.   

    下面是我刚刚实验过的代码:扫描所有可用的wifi,再改下应该就可以获取到当前连接的,供参考,如果你改好了也告诉一下~MainActivity.javapackage com.example.wifistudy;import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.List;import android.app.Activity;
    import android.app.ActionBar;
    import android.app.Fragment;
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.content.IntentFilter;
    import android.net.wifi.ScanResult;
    import android.net.wifi.WifiManager;
    import android.os.Bundle;
    import android.view.LayoutInflater;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.TextView;
    import android.os.Build;public class MainActivity extends Activity
    {
    TextView mainText;
    WifiManager mainWifi;
    WifiReceiver receiverWifi;
    List<ScanResult> wifiList;
    StringBuilder sb = new StringBuilder(); @Override
    protected void onCreate(Bundle savedInstanceState)
    {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main); if (savedInstanceState == null)
    {
    getFragmentManager().beginTransaction()
    .add(R.id.container, new PlaceholderFragment()).commit();
    }

    mainText = (TextView) findViewById(R.id.mainText);
        mainWifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
        receiverWifi = new WifiReceiver();
        registerReceiver(receiverWifi, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
        mainWifi.startScan();
        mainText.setText("\\nStarting Scan...\\n");
    } @Override
    public boolean onCreateOptionsMenu(Menu menu)
    {
    menu.add(0, 0, 0, "Refresh");
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
    } @Override
    public boolean onOptionsItemSelected(MenuItem item)
    {
    mainWifi.startScan();
            mainText.setText("Starting Scan");
            
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();
    if (id == R.id.action_settings)
    {
    return true;
    }
    return super.onOptionsItemSelected(item);
    }
    protected void onPause() 
    {
            unregisterReceiver(receiverWifi);
            super.onPause();
        }    protected void onResume() 
        {
            registerReceiver(receiverWifi, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
            super.onResume();
        }
    /**
     * A placeholder fragment containing a simple view.
     */
    public static class PlaceholderFragment extends Fragment
    { public PlaceholderFragment()
    {
    } @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
    Bundle savedInstanceState)
    {
    View rootView = inflater.inflate(R.layout.fragment_main, container,
    false);
    return rootView;
    }
    } class WifiReceiver extends BroadcastReceiver
    {
    public void onReceive(Context c, Intent intent)
    {
    SimpleDateFormat    formatter    =   new    SimpleDateFormat    ("yyyy年MM月dd日    HH:mm:ss     ");       
    Date    curDate    =   new    Date(System.currentTimeMillis());//获取当前时间       
    String    str    =    formatter.format(curDate); 

    sb.append(str);
    sb.append(": \n");
    wifiList = mainWifi.getScanResults();
    for (int i = 0; i < wifiList.size(); i++)
    {
    sb.append(new Integer(i + 1).toString() + ".");
    sb.append((wifiList.get(i)).toString());
    sb.append("\n");
    }
    mainText.setText(sb);
    }
    }}
    activity_main.xml
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="com.example.wifistudy.MainActivity"
        tools:ignore="MergeRootFrame" >
        
        <TextView android:id="@+id/mainText"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:ellipsize="none"
            android:maxLines="100"
            android:scrollHorizontally="true">      
        </TextView>
    </FrameLayout>AndroidManifest.xml:
    主要是加入下面四行
    <!-- 以下是使用wifi访问网络所需的权限 -->  
        <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"></uses-permission>  
        <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>  
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>  
        <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>  <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.wifistudy"
        android:versionCode="1"
        android:versionName="1.0" >
    <!-- 以下是使用wifi访问网络所需的权限 -->  
        <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"></uses-permission>  
        <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>  
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>  
        <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>  
     
        <uses-sdk
            android:minSdkVersion="14"
            android:targetSdkVersion="19" />    <application
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
            <activity
                android:name="com.example.wifistudy.MainActivity"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application></manifest>