【问题标题】:How to use any Internet connection in Android app (wifi, 3g, 4g, etc)?如何在 Android 应用程序中使用任何互联网连接(wifi、3g、4g 等)?
【发布时间】:2012-10-10 14:03:58
【问题描述】:

我正在编写一个需要使用 Internet 的应用程序。我拥有的一些相关代码是:

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

private boolean isConnected() {
    ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo netInfo = cm.getActiveNetworkInfo();

    if (netInfo != null && netInfo.isConnected()) {
        // do stuff
        return true;
    }
    else{
        // don't do stuff and display dialog instead
        return false;
    }
}

但是,我的应用似乎只能在 WiFi 连接上运行。无论它如何连接到 Internet,我如何使其正常工作?

【问题讨论】:

  • 你应该使用 isConnectedOrConnecting() 而不是 isConnected()
  • 还有。我从不检查用户是否已连接,因为当您想做网络事情而用户未连接时,它会抛出异常。

标签: android network-programming wifi 3g


【解决方案1】:

试试这个

public class NetWorkCheck{
    ConnectivityManager connectivityManager;
    NetworkInfo wifiInfo, mobileInfo, lanInfo;


    public Boolean checkNow(Context con){

        try{
            connectivityManager = (ConnectivityManager) con.getSystemService(Context.CONNECTIVITY_SERVICE);
            wifiInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
            mobileInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);


            if(wifiInfo.isConnected() || mobileInfo.isConnected())
            {
                return true;
            }
        }
        catch(Exception e){
            System.out.println("CheckConnectivity Exception: " + e.getMessage());
        }

        return false;
    }
}

并在您要测试连接的 Activity 中编写此代码

 NetWorkCheck networkCheck = new NetWorkCheck();
 boolean connection;

connection = networkCheck.checkNow(UpdateVehicleDetails.this);
                if (connection) {

【讨论】:

    猜你喜欢
    • 2011-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-29
    • 2017-09-29
    • 2011-05-19
    • 1970-01-01
    相关资源
    最近更新 更多