概述Android连接网络的时候,并不是每次都能连接到网络,因此在程序启动中需要对网络的
状态进行判断,如果没有网络则提醒用户进行设置。 首先,要判断网络状态,需要有相应的权限,下面为权限代码(AndroidManifest.xml): <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><uses-permission android:name="android.permission.INTERNET"/> 然后,
检测网络状态是否可用 [java] view plaincopyprint? /** * 对
网络连接状态进行判断 * @return true, 可用; false, 不可用 */ private boolean isOpenNetwork() { ConnectivityManager connManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); if(connManager.getActiveNetworkInfo() != null) { return connManager.getActiveNetworkInfo().isAvailable(); } return false; } 最后,不可用则打开网络设置 [java] view plaincopyprint? /** * 访问百度主页,网络不可用则需设置 */ private void initMoreGames() { String URL_MOREGAMES = "http://www.baidu.com"; mWebView = (WebView) findViewById(R.id.view_gamesort); if (mWebView != null) { mWebView.requestFocus(); WebSettings webSettings = mWebView.getSettings(); if (webSettings != null) { webSettings.setJavaScriptEnabled(true); webSettings.setCacheMode(MODE_PRIVATE); webSettings.setDefaultTextEncodingName("utf-8"); } // 判断网络是否可用 if(isOpenNetwork() == true) { mWebView.loadUrl(URL_MOREGAMES); } else { AlertDialog.Builder builder = new AlertDialog.Builder(MoreGamesActivity.this); builder.setTitle("没有可用的网络").setMessage("是否对网络进行设置?"); builder.setPositiveButton("是", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Intent intent = null; try { String sdkVersion = android.os.Build.VERSION.SDK; if(Integer.valueOf(sdkVersion) > 10) { intent = new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS); }else { intent = new Intent(); ComponentName comp = new ComponentName("com.android.settings", "com.android.settings.WirelessSettings"); intent.setComponent(comp); intent.setAction("android.intent.action.VIEW"); } MoreGamesActivity.this.startActivity(intent); } catch (Exception e) { Log.w(TAG, "open network settings failed, please check..."); e.printStackTrace(); } } }).setNegativeButton("否", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.cancel(); finish(); } }).show(); } } else { Log.w(TAG, "mWebView is null, please check..."); } } 运行界面:
AndroID连接网络的时候,并不是每次都能连接到网络,因此在程序启动中需要对网络的状态进行判断,如果没有网络则提醒用户进行设置。
首先,要判断网络状态,需要有相应的权限,下面为权限代码(AndroIDManifest.xml):
然后,检测网络状态是否可用
[java]
isOpenNetwork() { ConnectivityManager connManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); (connManager.getActiveNetworkInfo() != ) { connManager.getActiveNetworkInfo().isAvailable(); } ; }
最后,不可用则打开网络设置
[java] initMoreGames() { String URL_MOREGAMES = ; mWebVIEw = (WebVIEw) findVIEwByID(R.ID.vIEw_gamesort); (mWebVIEw != ) { mWebVIEw.requestFocus(); WebSettings webSettings = mWebVIEw.getSettings(); (webSettings != ) { webSettings.setJavaScriptEnabled(); webSettings.setCacheMode(MODE_PRIVATE); webSettings.setDefaultTextEnCodingname(); } (isOpenNetwork() == ) { mWebVIEw.loadUrl(URL_MOREGAMES); } { AlertDialog.Builder builder = AlertDialog.Builder(MoreGamesActivity.); builder.setTitle().setMessage(); builder.setPositivebutton(, DialogInterface.OnClickListener() { onClick(DialogInterface dialog, which) { Intent intent = ; { String sdkVersion = androID.os.Build.VERSION.SDK; (Integer.valueOf(sdkVersion) > ) { intent = Intent(androID.provIDer.Settings.ACTION_WIRELESS_SETTINGS); } { intent = Intent(); Componentname comp = Componentname(, ); intent.setComponent(comp); intent.setAction(); } MoreGamesActivity..startActivity(intent); } (Exception e) { Log.w(TAG, ); e.printstacktrace(); } } }).setNegativebutton(, DialogInterface.OnClickListener() { onClick(DialogInterface dialog, which) { dialog.cancel(); finish(); } }).show(); } } { Log.w(TAG, ); } }
运行界面:
总结 以上是内存溢出为你收集整理的Android 检测网络连接状态全部内容,希望文章能够帮你解决Android 检测网络连接状态所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
评论列表(0条)