我搜索了这个主题,但发现很少有帮助的细节.有了这些细节,我试着按如下方式编写一些代码.
注意:请将此帖中分享的详细信息与其他帖子进行比较,然后再将其标记为DUPLICATE,而不仅仅是主题.
- (NSArray *)getDataCountersForType:(int)type {
BOOL success;
struct ifaddrs *addrs = nil;
const struct ifaddrs *cursor = nil;
const struct sockaddr_dl *dlAddr = nil;
const struct if_data *networkStatisc = nil;
int dataSent = 0;
int dataReceived = 0;
success = getifaddrs(&addrs) == 0;
if (success) {
cursor = addrs;
while (cursor != NULL) {
if (cursor->ifa_addr->sa_family == AF_LINK) {
dlAddr = (const struct sockaddr_dl *) cursor->ifa_addr;
networkStatisc = (const struct if_data *) cursor->ifa_data;
if (type == WiFi) {
dataSent …Run Code Online (Sandbox Code Playgroud) 我有一个应用程序,我希望能够在一定的时间间隔后获得连接状态报告.即使我连接或关联到Wifi网络,我也想知道是否通过蜂窝网络启用了数据访问.这意味着,如果在检查之后,我可以优雅地与wifi网络解除关联,因为知道设备将连接到的可用蜂窝连接.
当前的可达性方法仅在连接到蜂窝时才提供有关蜂窝可用性的信息,并且在实际连接到接口之前没有太多关于获取此数据的信息.
寻找Android中可用的类似解决方案,如此链接中所述.
澄清
我不想看看我的设备是否具有蜂窝功能.我试图确定用户是否通过移动网络启用/禁用了数据访问,并且即使我连接到Wifi也想知道这些信息.用户可以通过转到"设置"来打开和关闭此功能.
我在 iOS 上使用个人 VPN。-> https://developer.apple.com/documentation/networkextension/personal_vpn
我想跟踪用户连接 VPN 时的上传和下载使用情况。但我在 NEVPNManager 上找不到任何方法。
有什么方法可以跟踪连接 VPN 时的数据使用情况吗?
或者我应该像这些方法一样跟踪数据使用情况 - >使用 swift 跟踪蜂窝数据使用情况
但这些方法会跟踪所有使用情况。我应该夹紧以获得正确的数据使用情况。因为我想跟踪连接 VPN 时的数据使用情况。
有人可以帮助我如何通过Swift从WWAN和WLAN获取数据使用情况?
我在Stack Overflow上发现如何在Objective-C中做到这一点,但解释会很好!