`

判断当前网络是否可用

阅读更多

有两种方式

方式一,是否有网络(所有网络mobilewifi

public boolean  isNetWorkConnected() {
ConnectivityManager  manager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
return manager!=null&&(manager.getActiveNetworkInfo().isConnected());
}

 

 

第二种方式,是否有指定的网络

检查wifi是否可用的两种方式

WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
boolean wifiEnabled = wifiManager.isWifiEnabled();
if(wifiEnabled)
{
//Wifi可用
}else {
//Wifi不可用
}

 

/**

 * 判断WIFI是否连接

 * 

 * @param context

 * @return

 */

private static boolean isWIFIConnected(Context context) {

ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkInfo info = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

if (info != null) {

return info.isConnected();

}

return false;

}

 

-------------------------------------------

package com.ithm.lottery17.util;

 

import com.ithm.lottery17.GloableParams;

 

import android.content.ContentResolver;

import android.content.Context;

import android.database.Cursor;

import android.net.ConnectivityManager;

import android.net.NetworkInfo;

import android.net.Uri;

/**

 *  网络判断工具

 * @author Administrator

 *

 */

public class NetUtil {

 

private static final Uri PREFERRED_APN_URI = Uri.parse("content://telephony/carriers/preferapn");

 

/**

 * 判断网络 是否含有网络 是那种通信渠道

 * 

 * @return

 */

public static boolean cheackNet(Context context) {

// 判断wifi是否连接

boolean isWIFI = isWIFIConnected(context);

// 判断mobile apn是否可以连接

boolean isAPN = isMobileConnected(context);

// 如果均为false,提示用户设置网络

if (isAPN == false && isWIFI == false) {

// 提示用户设置网络

return false;

}

// 如果mobile apntruewap方式

if (isAPN) {

// wap方式,代理信息,ip和端口

// 获取到当前正在处于连接的那个方式

// 获取到正在处于连接的方式的代理信息(10.0.0.172 010.000.000.172

setProxyInfo(context);

}

return true;

}

 

private static void setProxyInfo(Context context) {

ContentResolver contentResolver = context.getContentResolver();

// 获取到当前正在处于连接的那个方式

Cursor query = contentResolver.query(PREFERRED_APN_URI, null, null, null, null);

if (query != null && query.moveToNext()) {

GloableParams.PROXY_IP = query.getString(query.getColumnIndex("proxy"));

GloableParams.PROXY_PORT = query.getInt(query.getColumnIndex("port"));

}

}

 

/**

 * 判断WIFI是否连接

 * 

 * @param context

 * @return

 */

private static boolean isWIFIConnected(Context context) {

ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkInfo info = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

if (info != null) {

return info.isConnected();

}

return false;

}

 

/**

 * 判断MOBILE是否连接

 * 

 * @param context

 * @return

 */

private static boolean isMobileConnected(Context context) {

ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkInfo info = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

if (info != null) {

return info.isConnected();

}

return false;

}

//WIFIMOBILE并存——手机厂商支持

}

------------------检查网络并提示用户设置网络------------

package com.example.networktest;
 
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.database.Cursor;
import android.view.View;
import android.widget.Toast;
 
public class MainActivity extends Activity {
 
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
 
/**
 * 测试网络
 * @param view
 */
public void click1(View view) {
ConnectivityManager manager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo info = manager.getActiveNetworkInfo();
if(info!=null&&info.isConnected()){
Toast.makeText(getApplicationContext(), "网络已连接", 1).show();
}else {
AlertDialog.Builder builder = new Builder(this);
builder.setTitle("设置网络");
builder.setMessage("网络错误,请检查网络设置");
builder.setPositiveButton("设置网络", new OnClickListener() {
 
@Override
public void onClick(DialogInterface dialog, int which) {
//   <action android:name="android.intent.action.MAIN" />
//                <action android:name="android.settings.WIRELESS_SETTINGS" />
//                <action android:name="android.settings.AIRPLANE_MODE_SETTINGS" />
//                <category android:name="android.intent.category.DEFAULT" />
//                <category android:name="android.intent.category.VOICE_LAUNCH" />
Intent intent = new Intent();
intent.setAction("android.intent.action.MAIN");
intent.setAction("android.settings.WIRELESS_SETTINGS");
intent.setAction("android.settings.AIRPLANE_MODE_SETTINGS");
intent.addCategory("android.intent.category.DEFAULT");
intent.addCategory("android.intent.category.VOICE_LAUNCH");
startActivity(intent);
 
}
});
builder.setNegativeButton("取消", new OnClickListener() {
 
@Override
public void onClick(DialogInterface dialog, int which) {
 
}
});
builder.create();
builder.show();
}
}
 
/**
 * 测试wifi
 * @param view
 */
public void click2(View view) {
ConnectivityManager manager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo info = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if(info!=null&&info.isConnected()) {
Toast.makeText(getApplicationContext(), "wifi网络可用", 1).show();
}else {
AlertDialog.Builder builder = new Builder(MainActivity.this);
builder.setTitle("wifi设置");
builder.setMessage("wifi没有开启请设置wifi");
builder.setNegativeButton("取消", new OnClickListener() {
 
@Override
public void onClick(DialogInterface dialog, int which) {
 
}
});
builder.setPositiveButton("设置wfifi", new OnClickListener() {
 
@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent = new Intent();
// <intent-filter>
//                <action android:name="android.intent.action.MAIN" />
//                <action android:name="android.settings.WIFI_SETTINGS" />
//                <action android:name="android.net.wifi.PICK_WIFI_NETWORK" />
//                <category android:name="android.intent.category.DEFAULT" />
//                <category android:name="android.intent.category.VOICE_LAUNCH" />
//                <category android:name="com.android.settings.SHORTCUT" />
//            </intent-filter>
intent.setAction("android.intent.action.MAIN");
intent.setAction("android.settings.WIFI_SETTINGS");
intent.setAction("android.net.wifi.PICK_WIFI_NETWORK");
intent.addCategory("android.intent.category.DEFAULT");
intent.addCategory("android.intent.category.VOICE_LAUNCH");
intent.addCategory("com.android.settings.SHORTCUT");
startActivity(intent);
}
});
builder.show();
}
}
 
/**
 * 测试Mobile
 * @param view
 */
public void click3(View view) {
ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if(info!=null&&info.isConnected()) {
Uri uri = Uri.parse("content://telephony/carriers/preferapn");
Cursor cursor = getContentResolver().query(uri, null, null, null, null);
if(cursor!=null&&cursor.moveToNext()) {
Toast.makeText(getApplicationContext(), "当前是net方式", 1).show();
}else {
Toast.makeText(getApplicationContext(), "当前是wap方式", 1).show();
}
}
}
 
}

 

 

分享到:
评论

相关推荐

    Android 判断当前网络是否可用简单实例

    Android 判断当前网络是否可用简单实例 用户手机当前网络可用:WIFI、2G/3G网络,用户打开与不打开网络,和是否可以用是两码事。可以使用指的是:用户打开网络了并且可以连上互联网进行上网。 首页添加网络权限 ...

    登陆前判断网络是否可用

    安卓登陆前判断网络是否可用,可用直接通过,不可用提示并选择网络

    当前网络是否可用工具类

    Android用于判断当前网络是否真正可用,判断数据流量是否连通。

    android判断网络是否连接

    `NetworkInfo`对象包含了网络连接的状态信息,我们可以通过`isConnected()`或`isConnectedOrConnecting()`来判断当前网络是否可用。前者仅在完全连接时返回`true`,后者在连接中或已连接时返回`true`。 ```java ...

    android 判断网络是否可用与连接的网络是否能上网

    在上面的代码中,我们使用了一个静态方法 isOnline() 来判断当前连接的网络是否能上网,该方法使用 URL 连接来检测当前网络是否能打开网页。如果可以打开网页,则返回 true,否则返回 false。 四、实践应用 在实际...

    bat文件。判断网络是否可用,不可用则切换且保存到日志。

    判断网络,如果当前网络不可用,则更换其他网络,并且保存到日志文件,方便审查网络问题。适用于自助设备网络判断,与校园网断网切换

    判断网络是否可用

    这个类允许开发者获取当前网络信息,包括网络类型(如Wi-Fi、3G、4G等)和网络状态(是否可用)。通过`getActiveNetworkInfo()`方法,可以得到一个`NetworkInfo`对象,该对象包含了网络的具体信息。具体到代码实现上...

    C# WINFROM验证网络映射盘是否可用

    通过C#调用DOS的NETUSE和当前网络盘的路径,判断当前网络映射盘是否可用,是断开状态还是连接状态。

    AndroidTV开发过程中对Wifi网络及Pppoe网络的开关状态进行判断

    AndroidTV开发过程中对Wifi网络及Pppoe网络的开关状态进行判断,详细了解请移步http://blog.csdn.net/zxc514257857/article/details/68065312

    安卓启动退出网络判断相关-Activity启动和退出动画.zip

    根据返回的NetworkInfo对象的状态(如IS_CONNECTED)判断当前网络是否可用。 压缩包中的"本源码使用帮助.txt"可能提供了关于如何导入和运行这些代码的指导,而"更多源码打包下载.url"可能是一个链接,指向更多的...

    判断网络是否可用,跳转到设置界面

    在开发移动应用或者需要网络连接的软件时,确保网络可用性是至关重要的。"判断网络是否可用,跳转到设置界面"这个主题涉及到的是应用程序如何检测当前设备的网络状态,并根据该状态采取相应的操作,例如当网络不可用...

    android 判断是否有可用网络连接

    在Android开发中,判断设备是否具有可用的网络连接是一项基本且重要的功能,这涉及到对设备当前网络状态的检测,包括Wi-Fi和移动数据(如3G/4G/LTE)的连接情况。以下是对给定代码片段的深入解析与扩展,以更全面地...

    Android中判断网络连接是否可用的方法总结

    首先,我们可以使用`ConnectivityManager`来判断当前设备是否连接到WiFi。这个方法是通过获取`ConnectivityManager`服务并检查其`ActiveNetworkInfo`是否为非空,以及网络类型是否为`ConnectivityManager.TYPE_WIFI`...

    安卓启动退出网络判断相关-快捷图标的创建与移除.rar

    根据返回的`NetworkInfo`对象,可以判断当前网络是否可用,是WiFi还是移动数据等。 4. **启动退出**: 应用的启动和退出管理涉及到Activity的生命周期。启动通常由用户点击快捷图标或者系统启动应用的主Activity...

    Android编程判断网络连接是否可用的方法

    1.判断当前手机是否打开了网络 2.打开了网络是否可以上网 然后再去执行联网逻辑,避免没联网做不必要的工作! 通常情况下,我们是这样判断的 public static boolean isNetAvailable(Context context) { ...

    android判断网络是否可用并且可以使用原生刷新控件进行刷新

    在Android开发中,判断网络是否可用以及实现实时刷新功能是非常...这样的功能对于任何需要实时同步网络数据的应用都是非常重要的,特别是在登录等关键场景中,确保网络可用性可以提升用户体验并减少不必要的错误提示。

    iOS 判断当前是否有网络

    标题"iOS 判断当前是否有网络"以及描述"判断是否存在网络"所指向的知识点,就是关于如何在iOS平台上检查设备的网络连接状况。下面我们将详细探讨这一主题。 首先,我们需要了解iOS提供的一些关键框架,如System...

    判断当前设备是否联入网络

    总之,iOS开发者可以通过`Reachability`类或`SystemConfiguration`框架轻松地判断设备的网络连接状态,从而在应用请求服务器之前确保网络可用,提高用户体验。在实际开发中,根据项目的具体需求,可以选择适合的方法...

    判断网络是否WIFI,4G, 4G+

    提供判断网络是否可用,当前是否是wifi,4g或者4g+,如果不可用,并给出提示,调转到系统网络设置界面

Global site tag (gtag.js) - Google Analytics