声明:该方法仅用于判断默认数据网络,即每个月需要交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判断网络状态,并在没有网络的时候,打开网络设置对话框


更多相关文章

  1. android 判断当前所否为锁屏界面
  2. android app develop utils
  3. Android(安卓)连接网络时显示进度条
  4. Android获取实时网速
  5. android wifi测试小程序
  6. Android:网络:上传文件
  7. Android-Android(安卓)API 版本判断
  8. 用户代理判断
  9. android 实时监听网络连接状态

随机推荐

  1. 转:Android世界的15款开源的游戏开发引擎
  2. android native socket correspond
  3. Android DrawBitmap绘制图像
  4. Android之Shared Preferences
  5. Android OpenGL ES2.0编程教程系列之总览
  6. 解析Android重要包功能描述
  7. Android 获得sdcard大小与内存大小工具类
  8. Android时间倒计时的简单实线
  9. android的ANR原理剖析及图解(基于android
  10. Android studio引用包冲突