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>
流量模式选择
最新推荐文章于 2024-08-15 14:27:30 发布