您的位置:首页 > 理论基础 > 计算机网络

网络工具类

2016-05-26 13:36 369 查看
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.provider.Settings;
import android.util.Log;

/**
* Created by chao0 on 2016/3/2.
*/
/**
* 基于静态内部类实现的单例,保证线程安全的网络信息工具类 <per> 使用该工具类之前,记得在AndroidManifest.xml添加权限许可 <xmp>
* <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
* </xmp> </per>
* 安卓判断网络状态,只需要在相应的Activity的相关方法(onCreat/onResum)调用一行代码即可
* NetWorkUtils.getInstance(getActivity()).validateNetWork();
*/
public class ToolNetWork {
/** 网络连接方式 CMWAP*/
private static final String NETWORK_CMWAP="CMWAP";
/** 网络连接方式 CMNET*/
private static final String NETWORK_CMNET="CMNET";
/** 网络连接方式 WIFI*/
private static final String NETWORK_WIFI="WIFI";
private static final String TAG ="ToolNetWork" ;
private static NetworkInfo networkInfo;
private Context contxt;
private ToolNetWork() {
}
public ToolNetWork getToolNetWork(Context context){
this.contxt=context;
return this;
}
/** 判断网络是否可用
* return 是/否
* */
public boolean isAvailable(){
ConnectivityManager manager= (ConnectivityManager) contxt.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
if (manager==null){
return false;
}
networkInfo=manager.getActiveNetworkInfo();
if (networkInfo==null||networkInfo.isAvailable()){
return false;
}
return true;
}
/**
*判断网络连接是否可用
* return 是/否
* */
public boolean isConnected(){
if (!isAvailable()){
return false;
}
if (networkInfo.isConnected()){
return false;
}
return true;
}
// 检查当前环境网络是否可用,不可用跳转至开启网络界面,不设置网络强制关闭当前Activity
public void validateNetWork(){
if (!isConnected()){
AlertDialog.Builder dialogBuilder=new AlertDialog.Builder(contxt);
dialogBuilder.setTitle("网络设置").setMessage("当前网络不可用,是否现在设置网络").setPositiveButton("", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
((Activity)contxt).startActivityForResult(new Intent(Settings.ACTION_SETTINGS),which);
}
}).setNegativeButton("", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {

}
}).create().show();
}
}
/**
* 获取网络连接信息</br> 无网络:</br> WIFI网络:WIFI</br> WAP网络:CMWAP</br>
* NET网络:CMNET</br>
*
* @return
*/
public String getNetWorkType(){
if (isConnected()){
int type=networkInfo.getType();
if (ConnectivityManager.TYPE_MOBILE==type){
Log.i(TAG,
"networkInfo.getExtraInfo()-->"
+ networkInfo.getExtraInfo());
if (NETWORK_CMNET.equals(networkInfo.getExtraInfo().toLowerCase())){
return NETWORK_CMNET;
}else{
return NETWORK_CMWAP;
}

}else if (ConnectivityManager.TYPE_WIFI==type){
return NETWORK_WIFI;
}
}
return null;
}
private static  class SingletonHolder{
private static ToolNetWork toolNetWork=new ToolNetWork();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: