流量模式选择

来源:互联网 发布:注册中文域名多少钱 编辑:程序博客网 时间:2024/06/06 17:40
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>

原创粉丝点击