现在的位置: 首页 > 综合 > 正文

Android连接到加密网络

2018年02月13日 ⁄ 综合 ⁄ 共 3191字 ⁄ 字号 评论关闭
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.entel.research"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="7" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:label="@string/app_name"
            android:name=".WiFiConnEncryptionActivity" >
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
    
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <!--修改网络状态的权限  -->
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /><!--修改wifi状态的权限  -->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><!--访问wifi权  -->
    
</manifest>

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />

    <Button
        android:id="@+id/wifiManager_conn"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="连接加密网络" />
</LinearLayout>

package com.entel.research;

import java.util.List;

import android.app.Activity;
import android.content.Context;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiConfiguration;
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.Toast;

public class WiFiConnEncryptionActivity extends Activity
{
	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		
		Button wifiManager_open = (Button) findViewById(R.id.wifiManager_conn);
		
		wifiManager_open.setOnClickListener(new OnClickListener()
		{
			public void onClick(View v)
			{
				WifiManager wifiManager = (WifiManager)getSystemService(Context.WIFI_SERVICE);  
		        wifiManager.setWifiEnabled(true);  
		          
		        //add network  
		        if (wifiManager.startScan())    //扫描可用的无线网络  
				{
					List<ScanResult> scanResultList = wifiManager
							.getScanResults();
					for (int i = 0; i < scanResultList.size(); i++)
					{
						ScanResult scanRet = scanResultList.get(i);
						if (scanRet.SSID.equalsIgnoreCase("Enter_1")) // 找到 TEST
						{
							WifiConfiguration config = new WifiConfiguration();

							config.SSID = "\"" + scanRet.SSID + "\"";
							config.preSharedKey = "entel123"; // 指定密码
							config.hiddenSSID = true;
							config.allowedAuthAlgorithms
									.set(WifiConfiguration.AuthAlgorithm.OPEN);
							config.allowedGroupCiphers
									.set(WifiConfiguration.GroupCipher.TKIP);
							config.allowedKeyManagement
									.set(WifiConfiguration.KeyMgmt.WPA_PSK);
							config.allowedPairwiseCiphers
									.set(WifiConfiguration.PairwiseCipher.TKIP);
							config.allowedProtocols
									.set(WifiConfiguration.Protocol.WPA);
							config.status = WifiConfiguration.Status.ENABLED;

							int netID = wifiManager.addNetwork(config);
							Log.d("WifiPreference", "add Network returned "
									+ netID);
							boolean bRet = wifiManager.enableNetwork(netID,
									true);
							Log.d("WifiPreference", "enableNetwork returned "
									+ bRet);

							Toast.makeText(WiFiConnEncryptionActivity.this,
									"Enter_1连接成功", Toast.LENGTH_SHORT).show();
						}
					}
				}  
			}
		});
	}
}

抱歉!评论已关闭.