【原创】Android 判断默认数据网络是否为开,若关则跳转到网络配置页面

本文介绍了一种在Android中判断默认数据网络是否开启的方法,并提供了当网络未开启时引导用户到网络设置页面的代码实现。

声明:该方法仅用于判断默认数据网络,即每个月需要交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() { @Override public void onClick(DialogInterface dialog, int which) { // Go to the activity of settings of wireless Intent 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() { @Override public 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判断网络状态,并在没有网络的时候,打开网络设置对话框


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值