android - 检查 android 设备中可用的移动网络数据

标签 android parse-platform network-connection

我在 Android 中使用 Parse 开发应用程序,我需要检查设备上的互联网连接。所以我为登录做了这个:

connectivityManager = (ConnectivityManager)getActivity().getSystemService(Context.CONNECTIVITY_SERVICE);
    networkInfo = connectivityManager.getActiveNetworkInfo();

btnLogin.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (networkInfo != null && networkInfo.isConnected()) {
                if (validate()) {
                    ParseUser.logInInBackground(user, password, new LogInCallback() {
                        @Override
                        public void done(ParseUser user, ParseException e) {
                            if (user != null) {
                                //code to send to MainActivity
                            } else {
                                //code if the values are wrong
                            }
                        }
                    });
                }
            }else {
                Toast.makeText(getActivity(), "Check your network connection", Toast.LENGTH_LONG).show();
            }
        }
    });

我的问题来了。在我的国家,我们的手机提供商免费为我们提供 whatsapp 和 facebook,但如果您尝试浏览或使用其他应用程序,则不允许使用您的移动数据。当我尝试在没有任何移动数据的情况下登录我的应用程序时,我不知道该应用程序如何检测到一些移动数据并尝试登录。我在这里阅读 SO,使用网络连接的最佳方式,但我认为这些不是解决方案。如何检查设备中的兆字节或数据?还是我应该做些不同的事情来检查连接?提前致谢

最佳答案

尝试使用此解决方案可能会有帮助。

public boolean isNetworkOnline() {
    boolean status=false;
    try{
        ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo netInfo = cm.getNetworkInfo(0);
        if (netInfo != null && netInfo.getState()==NetworkInfo.State.CONNECTED) {
            status= true;
        }else {
            netInfo = cm.getNetworkInfo(1);
            if(netInfo!=null && netInfo.getState()==NetworkInfo.State.CONNECTED)
                status= true;
        }
    }catch(Exception e){
        e.printStackTrace();  
        return false;
    }
    return status;

    }  

关于android - 检查 android 设备中可用的移动网络数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33944724/

相关文章:

android - 在 Instagram 提要中分享 Intent 问题

proxy - 当我在浏览器中访问谷歌或谷歌应用引擎等网站时,谷歌云 SDK 中的网络连接问题

hadoop 协议(protocol)消息标签的线路类型无效

java.net.SocketException : Broken pipe while accessing mysql on cloud server

android - 在没有 SD 卡的情况下安装 Android 应用程序

android - 如何通过android代码获取android play store安装的应用程序包?

javascript - Mozilla Firefox 附加组件 Android - 页面操作不工作

javascript - Parse.com query.equalTo错误处理

ios - 在 iOS 项目中开始使用 parse.com 的 PFLogInViewController 和 PFSignUpViewController 后出现链接器错误

java - 限制按钮只能点击一次