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

Android判断网络状况和设置网络

2013年08月22日 ⁄ 综合 ⁄ 共 1397字 ⁄ 字号 评论关闭

前段时间,做一个Demo时需要判断机子的网络连接状况并设置网络,通过查资料找到了解决问题的答案

一、判断网络状况

    private boolean isNetworkAvailable() {
    	//取得系统网络服务
    	ConnectivityManager cm = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
    	//取得网络信息
    	NetworkInfo nk = cm.getActiveNetworkInfo();
		return nk!=null&&nk.isAvailable();
    }

二、设置网络

/**
	 * 设置网络
	 * 如果机子没有网络连接则转入到网络设置界面
	 * 
	 */
	private void networkSet(){
		if(isNetworkAvailable()){
			
			new Thread(){
				public void run() {
				
					try {
						sleep(2000);
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
					Intent intent = new Intent(SplashActivity.this,MainAppActivity.class);
					startActivity(intent);
					finish();
				};
			}.start();
		}else{
			
			AlertDialog.Builder builder = new Builder(SplashActivity.this);
			
			Drawable icon = getResources().getDrawable(R.drawable.dialog_error);
			builder.setIcon(icon);
			builder.setTitle(R.string.network_dialog_title);
			builder.setMessage(R.string.network_dialog_message);
			builder.setPositiveButton(R.string.network_dialog_positiveButton_text, 
					new DialogInterface.OnClickListener(){

						@Override
						public void onClick(DialogInterface dialog, int which) {
							Intent intent = new Intent();
							intent.setClassName("com.android.settings", "com.android.settings.WirelessSettings");
							startActivity(intent);
						}
						
					});
			
			builder.setNegativeButton(R.string.network_dialog_negativeButton_text, 
					new DialogInterface.OnClickListener(){

						@Override
						public void onClick(DialogInterface dialog, int which) {
							finish();
						}
				
					});
			builder.create().show();
			
		}
	}

进入到网络设置Activity是通过PackageName和ClassName,这两项可以通过LogCat处得知(Settings/Wireless&networks)

抱歉!评论已关闭.