❶ 安卓编程如何判断外网连通状态
public boolean checkNetworkInfo() {ConnectivityManager conMan = (ConnectivityManager) this.getSystemService(Context.CONNECTIVITY_SERVICE);State mobile = conMan.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();State wifi = conMan.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();if (mobile == State.CONNECTED || mobile == State.CONNECTING)return true;if (wifi == State.CONNECTED || wifi == State.CONNECTING)return true;return false;}
直接在需要判断的位置调用这个函数就可以,该方法返回布尔型数据,wifi和3G网络都进行了判断,只有在wifi和3G网络全部关闭的时候才返回false,可以根据需要调整内部的判断语句。可以通过监控流量来判断网络啊,设置延迟,几秒内流量值小于多少视为断网.
❷ android 怎么判断当前网络连接是否可以连接到外网
Android里判断是否可以上网,常用的是如下方法:/*** 检测网络是否连接** @return*/private boolean isNetworkAvailable() {// 得到网络连接信息ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);// 去进行判断网络是否连接if (manager.getActiveNetworkInfo() != null) {return manager.getActiveNetworkInfo().isAvailable();}return false;}有时候我们连接上一个没有外网连接的WiFi或者有线就会出现这种极端的情况,目前Android SDK还不能识别这种情况,一般的解决办法就是ping一个外网。/* @author suncat* @category 判断是否有外网连接(普通方法不能判断外网的网络是否连接,比如连接上局域网)* @return*/ public static final boolean ping() { String result = null;try {String ip = "www..com";// ping 的地址,可以换成任何一种可靠的外网Process p = Runtime.getRuntime().exec("ping -c 3 -w 100 " + ip);// ping网址3次// 读取ping的内容,可以不加InputStream input = p.getInputStream();BufferedReader in = new BufferedReader(new InputStreamReader(input));StringBuffer stringBuffer = new StringBuffer();String content = "";while ((content = in.readLine()) != null) {stringBuffer.append(content);}Log.d("——ping—–", "result content : " + stringBuffer.toString());// ping的状态int status = p.waitFor();if (status == 0) {result = "success";return true;} else {result = "failed";}} catch (IOException e) {result = "IOException";} catch (InterruptedException e) {result = "InterruptedException";} finally {Log.d("—-result—", "result = " + result);}return false;}
❸ Android关于判断应用是否有网络
应用场景:实现判断当前网络是否可用
当前有可用网络,如下图:
❹ android手机连接WiFi,WiFi连接modem,在android开发代码实现如何判断手机是否能上网。
/***检测网络是否连接*@return*/(){booleanflag=false;//得到网络连接信息manager=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);//去进行判断网络是否连接if(manager.getActiveNetworkInfo()!=null){flag=manager.getActiveNetworkInfo().isAvailable();}if(!flag){setNetwork();}else{isNetworkAvailable();}returnflag;}/***网络未连接时,调用设置方法*/privatevoidsetNetwork(){Toast.makeText(this,"wifiisclosed!",Toast.LENGTH_SHORT).show();AlertDialog.Builderbuilder=newAlertDialog.Builder(this);builder.setIcon(R.drawable.ic_launcher);builder.setTitle("网络提示信息");builder.setMessage("网络不可用,如果继续,请先设置网络!");builder.setPositiveButton("设置",newOnClickListener(){@OverridepublicvoidonClick(DialogInterfacedialog,intwhich){Intentintent=null;/***判断手机系统的版本!如果API大于10就是3.0+*因为3.0以上的版本的设置和3.0以下的设置不一样,调用的方法不同*/if(android.os.Build.VERSION.SDK_INT>10){intent=newIntent(android.provider.Settings.ACTION_WIFI_SETTINGS);}else{intent=newIntent();ComponentNamecomponent=newComponentName("com.android.settings","com.android.settings.WirelessSettings");intent.setComponent(component);intent.setAction("android.intent.action.VIEW");}startActivity(intent);}});builder.setNegativeButton("取消",newOnClickListener(){@OverridepublicvoidonClick(DialogInterfacedialog,intwhich){}});builder.create();builder.show();}/***网络已经连接,然后去判断是wifi连接还是GPRS连接*设置一些自己的逻辑调用*/privatevoidisNetworkAvailable(){Stategprs=manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();Statewifi=manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();if(gprs==State.CONNECTED||gprs==State.CONNECTING){Toast.makeText(this,"wifiisopen!gprs",Toast.LENGTH_SHORT).show();}//判断为wifi状态下才加载广告,如果是GPRS手机网络则不加载!if(wifi==State.CONNECTED||wifi==State.CONNECTING){Toast.makeText(this,"wifiisopen!wifi",Toast.LENGTH_SHORT).show();loadAdmob();}}/***在wifi状态下加载admob广告*/privatevoidloadAdmob(){ll=(LinearLayout)findViewById(R.id.load_ads);ll.removeAllViews();adsView=newAdView(this,AdSize.BANNER,"a15194a1ac9505d");ll.addView(adsView);adsView.loadAd(newAdRequest());}
❺ android 如何判断网络是否能够上网
实现步骤:下面解决办法来自于android学习手册,android学习手册包含9个章节,108个例子,源码文档随便看,例子都是可交互,可运行,源码采用android studio目录结构,高亮显示代码,文档都采用文档结构图显示,可以快速定位。360手机助手中下载。排到第三个。1、获取ConnectivityManager对象Context context = activity.getApplicationContext();// 获取手机所有连接管理对象(包括对wi-fi,net等连接的管理)ConnectivityManager connectivityManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);2、获取NetworkInfo对象// 获取NetworkInfo对象NetworkInfo[] networkInfo = connectivityManager.getAllNetworkInfo();3、判断当前网络状态是否为连接状态if (networkInfo[i].getState() == NetworkInfo.State.CONNECTED){ return true;}4、在AndroidManifest.xml中添加访问当前网络状态权限<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>代码如下:public class ClassTestDemoActivity extends Activity{ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); if (isNetworkAvailable(ClassTestDemoActivity.this)) { Toast.makeText(getApplicationContext(), "当前有可用网络!", Toast.LENGTH_LONG).show(); } else { Toast.makeText(getApplicationContext(), "当前没有可用网络!", Toast.LENGTH_LONG).show(); } } /** * 检查当前网络是否可用 * * @param context * @return */ public boolean isNetworkAvailable(Activity activity) { Context context = activity.getApplicationContext(); // 获取手机所有连接管理对象(包括对wi-fi,net等连接的管理) ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); if (connectivityManager == null) { return false; } else { // 获取NetworkInfo对象 NetworkInfo[] networkInfo = connectivityManager.getAllNetworkInfo(); if (networkInfo != null && networkInfo.length > 0) { for (int i = 0; i < networkInfo.length; i++) { System.out.println(i + "===状态===" + networkInfo[i].getState()); System.out.println(i + "===类型===" + networkInfo[i].getTypeName()); // 判断当前网络状态是否为连接状态 if (networkInfo[i].getState() == NetworkInfo.State.CONNECTED) { return true; } } } } return false; }}
❻ android 怎么判断网络状态
获取android系统的连接服务可判断网络连接状态,代码如下public class NetUtils{public static boolean isNetworkConnected(Context context){ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo[] infos = cm.getAllNetworkInfo();for(NetworkInfo info:infos){if(info.isAvailable()&&info.isConnected()){return true;}}return false;}} NetworkInfo的isAvailable()和isConnected()有以下5种状态:在WLAN设置界面1,显示连接已保存,但标题栏没有,即没有实质连接上:isConnected()==false,isAvailable()=true2,显示连接已保存,标题栏也有已连接上的图标:isConnected()==true,isAvailable()=true3,选择不保存后:isConnected()==false,isAvailable()=true4,选择连接,在正在获取IP地址时:isConnected()==false,isAvailable()=false5,连接上后:isConnected()==true,isAvailable()=true
❼ android判断网络是否连接
publicclassNetworkDetector{
publicstaticbooleandetect(Activityact){
ConnectivityManagermanager=(ConnectivityManager)act
.getApplicationContext().getSystemService(
Context.CONNECTIVITY_SERVICE);
if(manager==null){
returnfalse;
}
NetworkInfonetworkinfo=manager.getActiveNetworkInfo();
if(networkinfo==null||!networkinfo.isAvailable()){
returnfalse;
}
returntrue;
}
}这个类只有一个静态方法,用来检测当前系统的网络是否可用。如果可用,返回true
还有啥不知道可以继续追问
android:name="android.permission.ACCESS_NETWORK_STATE" /> 最后不要忘了权限问题