2012-05-10 39 views
10

Tôi muốn đọc lượng dữ liệu từ 3G mà mỗi ứng dụng sử dụng. Đây có phải là có thể trong iOS 5.x? Và trong iOS 4.x? Mục tiêu của tôi là ví dụ:Sử dụng dữ liệu từ bất kỳ ứng dụng nào

  • Maps tiêu thụ 3 MB từ kế hoạch dữ liệu của bạn
  • Thư tiêu thụ 420 kB từ kế hoạch dữ liệu của bạn

vv, vv Đây có phải là có thể?

EDIT: Tôi chỉ tìm thấy ứng dụng thực hiện điều đó: Data Man Pro

enter image description here

EDIT 2: Tôi bắt đầu một tiền thưởng. Điểm thêm vào câu trả lời làm rõ điều này. Tôi biết nó là có thể (màn hình từ Data Man Pro) và tôi chắc chắn rằng giải pháp là hạn chế. Nhưng giải pháp là gì và làm thế nào để thực hiện điều này.

Trả lời

8

Đây chỉ là những gợi ý không phải là giải pháp. Tôi đã nghĩ về điều này nhiều lần, nhưng chưa bao giờ thực sự bắt đầu thực hiện toàn bộ điều đó.

  1. byte đầu tiên của tất cả, bạn có thể tính toán được chuyển truy vấn giao diện mạng, hãy xem để this SO answer cho mã và một lời giải thích tốt đẹp về giao diện mạng trên iOS;

  2. sử dụng sysctl hoặc các chức năng hệ thống tương tự để phát hiện các ứng dụng đang chạy (và cho chạy Ý tôi là tình trạng quy trình được thiết lập để chạy, như ps hoặc đầu lệnh làm trên OSX. Không bao giờ thử tôi chỉ cho rằng điều này có thể xảy ra trên iOS, hy vọng không có vấn đề với ứng dụng đang chạy với tư cách người dùng không có đặc quyền) để bạn có thể suy ra ứng dụng nào đang chạy và lưu thống kê lưu lượng truy cập cho những ứng dụng đó. Rõ ràng, với khả năng có các ứng dụng chạy trong nền khó xác định ứng dụng nào đang truyền dữ liệu.
    Cũng có thể truy xuất thông tin về hoạt động mạng trên mỗi quy trình/ứng dụng như nettop trên OSX Lion, không may là nettop sử dụng khung công tác riêng NetworkStatistics.framework để bạn không thể khai thác điều gì đó;

  3. tính đến thời gian;

2 xu của tôi

+1

Xem xét những điểm không chính xác kỳ lạ được báo cáo bởi một số người dùng Data Man, có lẽ chỉ cần thực hiện "phỏng đoán có giáo dục" dựa trên cơ chế tương tự hoặc giống với cơ chế bạn mô tả. +1 – Toastor

1

Không, tất cả ứng dụng trong iOS đều có hộp cát, nghĩa là bạn không thể truy cập bất kỳ thứ gì bên ngoài ứng dụng. Tôi không tin điều này là có thể. Tôi cũng không tin rằng lưu lượng dữ liệu được lưu trên cấp độ này trên thiết bị, do đó, Apple sẽ triển khai nó trên trang network hoặc trang usage trong Settings.app.

Bên cạnh đó, không phải ai cũng có "gói dữ liệu". Ví dụ. ở Thụy Điển phổ biến của nó là lưu lượng dữ liệu là miễn phí mà không có giới hạn về kích thước hoặc tốc độ.

+0

OK bên cạnh gói dữ liệu. Nếu người dùng không có nó tôi muốn đọc tất cả các kết nối phù thủy không phải là WiFi – Kuba

+0

Như đã đề cập, các ứng dụng được sandboxed, bạn không thể (* hợp pháp *) truy cập bất cứ điều gì bên ngoài sandbox của ứng dụng của riêng bạn và cho phép của Apple API.Bạn có thể kiểm tra kết nối * Ứng dụng * của bạn đang sử dụng bằng Khả năng hiển thị, nhưng điều đó không trả lời được câu hỏi của bạn. –

+0

Tôi vừa tìm thấy ứng dụng thực hiện điều đó: http://itunes.apple.com/us/app/dataman-pro-real-time-data/id433617332?mt=8! Tôi cập nhật bài đăng gốc của mình! – Kuba

Các vấn đề liên quan