ConnectivityManager判断当前网络连接类型,非WiFi网络流量加载模式

Activity

shezhi1 = (ImageView) slidingMenu.findViewById(R.id.shezhi);
shezhi1.setOnClickListener(this);

 点击事件
@Override
public void onClick(View v) {
    switch (v.getId()) {
        case R.id.IV:
            slidingMenu.toggle();
            break;
        case R.id.IV4:
            Intent intent = new Intent(MainActivity.this,Twoactivity.class);
            startActivity(intent);
            break;
        case R.id.shezhi:
            String[] strings = {"最佳效果", "较省流量", "极省流量"};
            final AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setTitle("WiFi下载,请注意");
            builder.setNegativeButton("取消",null);
            int mode = App.appcontext().getSharedPreferences(NetUtils.BAOCUN, Context.MODE_PRIVATE).getInt(NetUtils.KEY, 0);

            builder.setSingleChoiceItems(strings,mode, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    App.appcontext().getSharedPreferences(NetUtils.BAOCUN,Context.MODE_PRIVATE).edit().putInt(NetUtils.KEY,which).commit();

                    dialog.dismiss();
                }
            });
            builder.create().show();
            break;

    }

网络判断

IntentFilter filter = new IntentFilter();
filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
mConnectivityBroadcastReceiver = new ConnectivityBroadcastReceiver();
registerReceiver(mConnectivityBroadcastReceiver, filter);

/**
 * 接受网络状态的改变
 */
public class ConnectivityBroadcastReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        if (ConnectivityManager.CONNECTIVITY_ACTION.equals(intent.getAction())) {

            boolean isMobileConnectivity = true;

            //如果能走到这,说明网络已经发生变化
            ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo activeNetworkInfo = manager.getActiveNetworkInfo();
            if (activeNetworkInfo != null && activeNetworkInfo.isConnected()) {
                if (ConnectivityManager.TYPE_WIFI == activeNetworkInfo.getType()) {
                    Toast.makeText(MainActivity.this, "当前wifi模式", Toast.LENGTH_SHORT).show();
                    isMobileConnectivity = false;
                    //移动网络
                } else if (ConnectivityManager.TYPE_MOBILE == activeNetworkInfo.getType()) {
                    Toast.makeText(MainActivity.this, "当前移动网络,请注意", Toast.LENGTH_SHORT).show();
                    isMobileConnectivity = true;
                    //获得现在的网络状态 是移动网络,去改变我们的访问接口

                } else {
                    Toast.makeText(MainActivity.this, "网络不可用,请检查网络", Toast.LENGTH_SHORT).show();
                }

            } else {
                Toast.makeText(MainActivity.this, "网络不可用,请检查网络", Toast.LENGTH_SHORT).show();
            }

            NetUtils.danli().changeNetState(isMobileConnectivity);
        }
    }

App

private static App app;
@Override
public void onCreate() {
    super.onCreate();
    app = this;
}
  public static Context appcontext(){
    return app;
}


Netutils

public class NetUtils {

    public static final String BAOCUN = "BAOCUN";
    private static String TU1="大图显示";
    private static  String TU2="中图显示";
    private static  String TU3="小图实现";

    private static NetUtils netUtils;
    public  static String KEY="KEY";
    private static String MOREN=TU1;
    private static boolean isMobileConnectivity = true;

    private NetUtils(){

    }
    //单例模式
    public static NetUtils danli(){
        if (netUtils==null){
            synchronized (NetUtils.class){
                if (netUtils==null){
                    netUtils = new NetUtils();
                }
            }
        }
        return netUtils;
    }
    public static String moshi(){

        if (isMobileConnectivity){

            int mode = App.appcontext().getSharedPreferences(BAOCUN, Context.MODE_PRIVATE).getInt(KEY, 0);
            switch (mode){

                case 0:
                    MOREN = TU1;
                break;
                case 1:
                    MOREN = TU2;
                break;
                case 2:
                    MOREN = TU3;
                break;
            }
        }else {
            MOREN=TU1;
        }
        
        return MOREN;
    }



    public void changeNetState(boolean isMobileConnectivity) {
        this.isMobileConnectivity = isMobileConnectivity;
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值