Aygıt tarafından kullanılan hücresel veriyi hızlı şekilde izlemek için bir yol var mı? Herhangi bir api var mı? Ben thisHızlı bir şekilde kullanarak hücresel veri kullanımını izleme
5
A
cevap
1
gibi bir şeye ulaşmaya çalışıyorum Swift 4 güncellendiğinde bu kolay uzantıyı kullanabilirsiniz. Cihaz hücresini ve wifi kullanımını izlemek için.
extension SystemDataUsage {
public static var wifiCompelete: UInt64 {
return SystemDataUsage.getDataUsage().wifiSent + SystemDataUsage.getDataUsage().wifiReceived
}
public static var wwanCompelete: UInt64 {
return SystemDataUsage.getDataUsage().wirelessWanDataSent + SystemDataUsage.getDataUsage().wirelessWanDataReceived
}
}
class SystemDataUsage {
private static let wwanInterfacePrefix = "pdp_ip"
private static let wifiInterfacePrefix = "en"
class func getDataUsage() -> DataUsageInfo {
var ifaddr: UnsafeMutablePointer<ifaddrs>?
var dataUsageInfo = DataUsageInfo()
guard getifaddrs(&ifaddr) == 0 else { return dataUsageInfo }
while let addr = ifaddr {
guard let info = getDataUsageInfo(from: addr) else {
ifaddr = addr.pointee.ifa_next
continue
}
dataUsageInfo.updateInfoByAdding(info)
ifaddr = addr.pointee.ifa_next
}
freeifaddrs(ifaddr)
return dataUsageInfo
}
private class func getDataUsageInfo(from infoPointer: UnsafeMutablePointer<ifaddrs>) -> DataUsageInfo? {
let pointer = infoPointer
let name: String! = String(cString: pointer.pointee.ifa_name)
let addr = pointer.pointee.ifa_addr.pointee
guard addr.sa_family == UInt8(AF_LINK) else { return nil }
return dataUsageInfo(from: pointer, name: name)
}
private class func dataUsageInfo(from pointer: UnsafeMutablePointer<ifaddrs>, name: String) -> DataUsageInfo {
var networkData: UnsafeMutablePointer<if_data>?
var dataUsageInfo = DataUsageInfo()
if name.hasPrefix(wifiInterfacePrefix) {
networkData = unsafeBitCast(pointer.pointee.ifa_data, to: UnsafeMutablePointer<if_data>.self)
if let data = networkData {
dataUsageInfo.wifiSent += UInt64(data.pointee.ifi_obytes)
dataUsageInfo.wifiReceived += UInt64(data.pointee.ifi_ibytes)
}
} else if name.hasPrefix(wwanInterfacePrefix) {
networkData = unsafeBitCast(pointer.pointee.ifa_data, to: UnsafeMutablePointer<if_data>.self)
if let data = networkData {
dataUsageInfo.wirelessWanDataSent += UInt64(data.pointee.ifi_obytes)
dataUsageInfo.wirelessWanDataReceived += UInt64(data.pointee.ifi_ibytes)
}
}
return dataUsageInfo
}
}
struct DataUsageInfo {
var wifiReceived: UInt64 = 0
var wifiSent: UInt64 = 0
var wirelessWanDataReceived: UInt64 = 0
var wirelessWanDataSent: UInt64 = 0
mutating func updateInfoByAdding(_ info: DataUsageInfo) {
wifiSent += info.wifiSent
wifiReceived += info.wifiReceived
wirelessWanDataSent += info.wirelessWanDataSent
wirelessWanDataReceived += info.wirelessWanDataReceived
}
}
Sen gibi kullanabilirsiniz: SystemDataUsage.wifiCompelete
+0
bu kullanım genel cihaz veya tek uygulama içindir –
İlgili konular
- 1. Hücresel veri gösteriliyor uyarı kapalı
- 2. Bellek eşlemeli dosyalar: bellek kullanımını izleme
- 3. Xcode and Instruments bellek kullanımını izleme
- 4. Hızlı bir şekilde
- 5. Python hızlı bir şekilde
- 6. Hızlı bir şekilde AVPlayerViewController
- 7. Sorun: 'PrincipalViewController' hızlı bir şekilde
- 8. Resim çerçevelerini hızlı/hızlı bir şekilde silme
- 9. MVC3 Bir ızgara ile önyükleme yaprağındaki hücresel veri
- 10. flip kart hızlı bir şekilde
- 11. Hızlı bir şekilde verileri ayrıştırma
- 12. Bir tabloyu hızlı bir şekilde Selenium'da alma
- 13. Hızlı bir şekilde uygulama akışını denetleme
- 14. Neden bir listeyi [:] kullanarak bariz bir şekilde daha hızlı bir şekilde kopyalıyorsunuz?
- 15. VIM eşleştirmelerini kullanarak hücresel bir automata simüle ediliyor mu?
- 16. XCode'da/* ve */hızlı bir şekilde nasıl silinir
- 17. hızlı bir şekilde 2B numpy dizi
- 18. Görüntüyü Image.xcassets'ten hızlı bir şekilde UIImage'e yükleme
- 19. Json Hızlı bir şekilde ayrıştırma 2
- 20. , arabellekleri olabildiğince hızlı bir şekilde karşılaştırır.
- 21. LiveBindings'i kullanarak izleme listeleri
- 22. CGImageCreate hızlı bir şekilde hata veriyor
- 23. Nasıl sockaddr_in sockaddr için hızlı bir şekilde
- 24. Hızlı bir şekilde NSValue CGPoint dönüştürmek nasıl?
- 25. 3D Peek ve POP hızlı bir şekilde
- 26. MKPointAnahtarlıklar hızlı bir şekilde dokunma olayını
- 27. UITableViewCell Sliding Simulation hızlı bir şekilde
- 28. Subversion tüm çakışmaları hızlı bir şekilde çözer
- 29. Apache'nin işlenmesi hızlı bir şekilde günlüğe kaydediyor
- 30. Sabit değerler hızlı bir şekilde nerede saklanır?
Kontrol dışarı __ [Bu soru] (http://stackoverflow.com/questions/7946699/iphone-data-usage-tracking-monitoring/8014012#8014012) __. Objective - C için, ama Swift'de çalışmasını sağlamak için az çaba harcayarak değiştirebileceğinizi düşünüyorum. – aksh1t