android wifi连接 有无密码均实机验证成功案例

最近搞了个无线wifi模块,兴趣爱好写了个android wifi密码连接,先将成果分享出来,谢谢大家指出不足,欢迎点赞。

功能点:连接wifi模块,包括无密码和加密方式。异步连接,不会导致ANR。

自动保存wifi密码。


先上图:刷新wifi站点信息

连接我的wifi模块,没密码是ok的,有密码的我也先试了一把,所有密码自动保存了(代码中体现)


连接成功(通过获取到ip地址来判断是否连接成功)ip地址有打印输出



直接上代码,MainActivity直接继承至ListActivity,wifi连接模块主要用到android的WifiManager,WifiInfo和输出结果集ScanResult.

public class MainActivity extends ListActivity {

	private static final String TAG = "MainActivity";
	private static final boolean D = true;
	
	private WifiManager wifiManager;
	private WifiInfo current_wifiInfo;// 当前连接的wifi
	// 扫描结果列表
	private List<ScanResult> list_scan;// wifi列表
	private ScanResult scanResult;
	private int current_wifi_index;//当前点击的wifi索引

	// 添加有图片的ListActivity
	private ArrayList<HashMap<String, Object>> hashmap_wifi_items = new ArrayList<HashMap<String, Object>>();;
	private SimpleAdapter simpleAdapter;

	private ProgressDialog progressDialog;
	private EditText edt_wifi_password = null;
	private AlertDialog connect_wifi_alertdialog;

	private boolean is_connect_wifi_thread = false;
	private ConnectWifiThread connect_wifi_thread = null;

	private final String PREFERENCES_NAME = "userinfo";
	private String wifi_password = "";


创建activity是打开wifi刷新列表得到wifi结果集,加载到listView里面。我们会看到图1的效果

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

		wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
		openWifi();
		current_wifiInfo = wifiManager.getConnectionInfo();
		getAllNetWorkList();
		simpleAdapter = new SimpleAdapter(this, hashmap_wifi_items,
				R.layout.item_wifi_list, new String[] { "ItemTitle",
						"ItemImage" }, new int[] { R.id.wifiTextView,
						R.id.wifiImageView });
		this.setListAdapter(simpleAdapter);
	}
	
	Handler handler = new Handler() {
		public void handleMessage(Message msg) {
			if(D) Log.v(TAG, "msg.what = " + msg.what);
			SharedPreferences vPreferences = getSharedPreferences(
					PREFERENCES_NAME, Activity.MODE_PRIVATE);

			Editor vEditor = vPreferences.edit();
			switch (msg.what) {
			case 0:
				new RefreshSsidThread().start();
				break;
			case 1:
				new AlertDialog.Builder(MainActivity.this)
						.setMessage("连接失败,请重新连接!")
						.setPositiveButton("确定",
								new DialogInterface.OnClickListener() {
									public void onClick(DialogInterface dialog,
											int whichButton) {
									}
								}).show();
				break;
			case 3:
				LayoutInflater inflater = getLayoutInflater();
				View layout = inflater.inflate(R.layout.access_point_dialog,
						(ViewGroup) findViewById(R.id.dialog));
				edt_wifi_password = (EditText) layout
						.findViewBy
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值