You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django中如何判断用户是否连接WiFi以控制视频上传权限

仅允许WiFi下的视频上传实现方案

核心需求:仅当设备连接WiFi时允许视频上传,蜂窝数据网络即使连通也禁止上传,避免蜂窝数据上传性能差引发的负载问题。

iOS 实现

使用苹果官方Network框架(iOS 12+)精准判断当前网络类型:

import Network

func isConnectedToWiFi() -> Bool {
    let monitor = NWPathMonitor()
    let queue = DispatchQueue(label: "WiFiMonitor")
    var isWiFi = false
    
    monitor.pathUpdateHandler = { path in
        if path.status == .satisfied {
            isWiFi = path.usesInterfaceType(.wifi)
        } else {
            isWiFi = false
        }
        monitor.cancel()
    }
    
    monitor.start(queue: queue)
    queue.sync {}
    
    return isWiFi
}

// 使用示例
if isConnectedToWiFi() {
    // 执行视频上传逻辑
} else {
    // 提示用户切换至WiFi网络后再上传
}

注意事项:

  • 无需额外权限,Network框架会自动处理网络权限请求
  • 若需实时监听网络状态变化,可保留NWPathMonitor实例持续接收回调

Android 实现

通过ConnectivityManager获取当前网络传输类型,精准判断是否为WiFi:

import android.content.Context
import android.net.ConnectivityManager
import android.net.NetworkCapabilities

fun isConnectedToWiFi(context: Context): Boolean {
    val connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
    val network = connectivityManager.activeNetwork ?: return false
    val capabilities = connectivityManager.getNetworkCapabilities(network) ?: return false
    
    return capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) && capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
}

// 使用示例
if (isConnectedToWiFi(applicationContext)) {
    // 启动视频上传任务
} else {
    // 提示用户仅支持WiFi上传
}

注意事项:

  • 需在AndroidManifest.xml中添加权限:
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    
  • Android 10+ 后台获取网络状态需额外适配,建议在前台完成网络检查后再启动上传

内容的提问来源于stack exchange,提问作者Marcus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 20:54:51