Une application Android que j'écris implique beaucoup de téléchargement de contenu (pensez à podcatcher/RSS). Je voudrais être en mesure de donner à l'utilisateur une indication du nombre d'octets qu'ils ont téléchargés, afin qu'ils puissent décider s'ils veulent ou non utiliser Wifi.Sur Android/Java, combien d'octets une connexion a-t-elle téléchargée?
A cette fin, j'ai trouvé un moyen de compter le nombre d'octets lu par l'application, en enveloppant un InputStream
dans un CountingInputStream
simple. Cependant, cela ne prend pas en compte les éléments de base comme les en-têtes de paquets et les en-têtes HTTP. Plus important encore, il ne prend en compte aucune compression avec laquelle le contenu peut être encodé.
Alors, combien d'octets mon application a-t-elle téléchargé sur le réseau? Je ne suis pas si intéressé par le nombre d'octets téléchargés, mais si vous savez comment, ne soyez pas timide.
J'ai adopté une approche de niveau relativement bas car j'alimente le flux d'entrée dans un PullParser XML. Je vais aussi avoir besoin de faire un exercice similaire avec des octets de dumping (images dans ce cas) directement sur la carte SD.
Est-ce la meilleure approche? Qu'est-ce que je rate?
Bons points concernant les octets de contrôle et l'argent. – jamesh