流量模式选择

public class MainActivity extends AppCompatActivity {

    private Mybrod mybrod;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        IntentFilter filter = new IntentFilter();
        filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
        mybrod = new MainActivity.Mybrod();
        registerReceiver(mybrod, filter);

    }
    public void Onclick(View view){
        String [] arr={
                "最佳效果", "较省流量", "极省流量"
        };
        int mode = Myapp.getmyappcontext().getSharedPreferences(NetUtils.SP_NAME, Context.MODE_PRIVATE).getInt(NetUtils.SP_NAME_KEY, 0);
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("非wifi网络流量");
        builder.setSingleChoiceItems(arr, mode, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Myapp.getmyappcontext().getSharedPreferences(NetUtils.SP_NAME,MODE_PRIVATE).edit().putInt(NetUtils.SP_NAME_KEY,which).commit();
                dialog.dismiss();
            }
        });
        builder.setNegativeButton("取消",null);
        builder.create().show();
    }
    public class Mybrod extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            if (ConnectivityManager.CONNECTIVITY_ACTION.equals(intent.getAction())) {
                boolean isMobile=true;
                ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
                NetworkInfo networkInfo = manager.getActiveNetworkInfo();
                if (networkInfo != null && networkInfo.isConnected()) {
                    if (ConnectivityManager.TYPE_WIFI==networkInfo.getType()){
                        Toast.makeText(MainActivity.this, "wifi状态", Toast.LENGTH_SHORT).show();
                        isMobile=true;
                    }else if (ConnectivityManager.TYPE_MOBILE==networkInfo.getType()){
                        Toast.makeText(MainActivity.this, "处于移动网络", Toast.LENGTH_SHORT).show();
                        isMobile=false;
                    }else {
                        Toast.makeText(MainActivity.this, "网络不可用", Toast.LENGTH_SHORT).show();
                    }
                }else {
                    Toast.makeText(MainActivity.this, "网络不可用", Toast.LENGTH_SHORT).show();
                }
                NetUtils.getInstance().ChangeNetMode(isMobile);
            }
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        unregisterReceiver(mybrod);
    }
}







//去清单文件注册
public class Myapp extends Application {
    private static Myapp myapp;
    @Override
    public void onCreate() {
        super.onCreate();
        myapp=this;
    }
    public static Context getmyappcontext(){
        return myapp;
    }
}





public class NetUtils {
    public static final String SP_NAME="SP_NAME";
    public static final String SP_NAME_KEY="SP_NAME_KEY";

    public static final String MODE_BIG="SP_NAME_KEY";
    public static final String MODE_SMALL="SP_NAME_KEY";
    public static final String MODE_NO="SP_NAME_KEY";

    private boolean isMobile=true;
    private String MODE_USER=MODE_BIG;
    private static NetUtils mNetUtils;
    private NetUtils(){

    }
    public static NetUtils getInstance() {
        if (mNetUtils == null) {
            synchronized (NetUtils.class) {
                if (mNetUtils == null) {
                    mNetUtils = new NetUtils();
                }
            }
        }
        return mNetUtils;
    }
    public String getBASE_URL(){
        if (isMobile){
            int mode = Myapp.getmyappcontext().getSharedPreferences(SP_NAME, Context.MODE_PRIVATE).getInt(SP_NAME_KEY, 0);
            switch (mode){
                case 0:
                    MODE_USER=MODE_BIG;
                    break;
                case 1:
                    MODE_USER=MODE_SMALL;
                    break;
                case 2:
                    MODE_USER=MODE_NO;
                    break;
            }

        }else {
            MODE_USER=MODE_BIG;
        }
        return MODE_USER;
    }
    public void ChangeNetMode(boolean isMobile){
        this.isMobile=isMobile;
    }

}

 


//必须添加权限

<uses-permission android:name="android.permission.INTERNET"></uses-permission>
 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值