阻止Android请求使用手机数据

阻止Android请求使用手机数据,android,okhttp,Android,Okhttp,我们正在通过Android应用程序进行大量上传。我们希望强制这些用户使用WiFi,而不要使用手机,这样我们就不会浪费用户的手机数据计划 目前,我们正在使用ConnectionManager检查连接状态,并确保他们已连接到WiFi。这种方法似乎已经停止在Android 7上工作,因为有时即使连接了WiFi,操作系统也会决定通过手机发送请求 在iOS上,我们可以使用AllowCellularAccess=false来明确防止这种情况 Android上有没有一种方法要求用户请求使用WiFi?理想情况下

我们正在通过Android应用程序进行大量上传。我们希望强制这些用户使用WiFi,而不要使用手机,这样我们就不会浪费用户的手机数据计划

目前,我们正在使用ConnectionManager检查连接状态,并确保他们已连接到WiFi。这种方法似乎已经停止在Android 7上工作,因为有时即使连接了WiFi,操作系统也会决定通过手机发送请求

在iOS上,我们可以使用AllowCellularAccess=false来明确防止这种情况

Android上有没有一种方法要求用户请求使用WiFi?理想情况下是在请求级别,而不是整个应用程序。我们不想将整个应用程序局限于WiFi,只想进行大规模上传

我们正在使用OkHttpRequest,但如果需要,我们愿意使用另一个lib。

来自文档


啊,谢谢。我们正在使用getAllNetworkInfo并检查Wifi(假设它可以使用它)。getActiveNetworkInfo应该解决这个问题。谢谢
ConnectivityManager cm = (ConnectivityManager) this.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
    if (activeNetwork != null) { // connected to the internet
        if (activeNetwork.getType() == ConnectivityManager.TYPE_WIFI) {
            // connected to wifi
            // make large uploads here
            Log.d(LOG_TAG, " connected to WIFI");
        } else if (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE) {
            // connected to the mobile provider's data plan
            Log.d(LOG_TAG, " Connected to Mobile");
        }
    } else {
        Log.d(LOG_TAG, " No connection");
    }