【原创】Android(安卓)判断默认数据网络是否为开,若关则跳转到网络配置页面
16lz
2021-01-26
声明:该方法仅用于判断默认数据网络,即每个月需要交X元,获得XX M的上网流量的数据网络。没有对wifi等,进行判断。
第一步,添加读取手机网络状态的权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
第二步,判断默认数据网络是否开启,并在未开启时打开网络配置页面
下图是Android中,各种网络名,及其描述。(在ConnectivityManager下可找到)
我们可以看到,TYPE_MOBILE为手机默认数据流量网络名。
所以,我们仅需要对该网络是否开启进行判断即可。
// What to do when you check on posBtn?private void checkOnPosBtn(){// TODO Force the user to set the network connected.ConnectivityManager connectivityManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo networkInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);if (false == networkInfo.isConnectedOrConnecting()) {openNetworkSettings();} else {// TODO Login logic}}private void openNetworkSettings() {AlertDialog dialog = new AlertDialog.Builder(this).setTitle("开启网络服务").setMessage("本软件需要使用网络资源,是否开启网络?").setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// Go to the activity of settings of wirelessIntent intentToNetwork = new Intent("/");ComponentName componentName = new ComponentName("com.android.settings","com.android.settings.WirelessSettings");intentToNetwork.setComponent(componentName);intentToNetwork.setAction("android.intent.action.VIEW");startActivity(intentToNetwork);dialog.cancel();}}).setNegativeButton("否", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.cancel();}}).show();}
其中,
NetworkInfo networkInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);这一句中,getNetworkInfo(ConnctivityManager.XX);这个XX可以有上面列举的TYPE_MOBILE和TYPE_WIFI两种,你可以根据你实际的网络要求进行相应的修改。
参考资料:
[1]Android判断网络状态方法详解
[2]Android判断网络状态,并在没有网络的时候,打开网络设置对话框
更多相关文章
- android 判断当前所否为锁屏界面
- android app develop utils
- Android(安卓)连接网络时显示进度条
- Android获取实时网速
- android wifi测试小程序
- Android:网络:上传文件
- Android-Android(安卓)API 版本判断
- 用户代理判断
- android 实时监听网络连接状态