2010-08-27 8 views
4

Nous générons un fichier temporaire sur un appareil Android et l'attachons à un e-mail. Nous utilisons un fournisseur de contenu personnalisé pour alimenter ce fichier vers l'application de messagerie. Le problème est que l'application de messagerie accède au fichier plusieurs fois, au lieu d'une fois, jusqu'à ce qu'elle envoie finalement l'e-mail (par exemple, chaque fois qu'elle écrit un brouillon, nous recevons une requête). Il est difficile de savoir quand pour supprimer ce fichier temporaire.Quand supprimer un fichier temporaire utilisé dans Intent.SEND pour le courrier électronique joint?

Des idées sur une méthode sûre pour savoir quand notre email a été livré afin que nous puissions nettoyer l'appareil et ne pas laisser les ordures derrière? (périodiquement supprimer ne semble pas non plus juste que le téléphone peut être pendant un certain temps avec l'e-mail dans le dossier Brouillons)

Merci beaucoup pour l'aide!

Répondre

1

Ouais, ouais, je sais que c'est un an. Mais nous avons rencontré la même chose. Nous avons utilisé ContentProvider.openFile() pour synthétiser les données à la demande et les diffuser directement dans l'application de messagerie plutôt que de les écrire dans un fichier temporaire. Pour ce faire, vous devez renvoyer une ligne conforme à OpenableColumns à partir de la méthode query() de ContentProvider; l'application de messagerie retournera openFile() et vous retournerez un ParcelFileDescriptor. Malheureusement, c'est un peu la magie noire et nous avons constaté qu'un certain nombre d'applications se trompent --- DropBox est un peu problématique, et en ce moment (la raison pour laquelle j'ai remarqué votre question) nous nous battons Front-end Bluetooth propriétaire de Samsung. Pourquoi les vendeurs ne peuvent pas laisser les choses tranquilles Je ne sais pas ...

+0

Je voudrais expérimenter avec votre approche. Je suis nouveau sur Android, et je commence mon premier ContentProvider. Je ai du mal à comprendre A) comment diffuser des données directement à l'application de messagerie et B) comment se conformer à OpenableColumns. Pouvez-vous développer comment vous accomplissez ce qui précède? – stephen

+0

Je ne peux pas vraiment ajouter plus à ce que j'ai dit ci-dessus --- ContentProvider.openFile() est le bit magique. Cependant, je devrais probablement souligner que depuis que j'ai écrit ceci, nous avons abandonné complètement cette approche. Ce n'était pas assez fiable. trop d'applications tierces ne le supportaient pas, et quand elles le faisaient, elles se trompaient souvent. Maintenant, nous écrivons simplement des fichiers dans un répertoire temporaire, retournons un fichier: un URI pointant dessus, puis un processus d'arrière-plan les supprime quand ils ont une semaine. –

+0

Merci pour les heads-up. – stephen