Ostateczny cel zostanie wkrótce wyjaśniony.Android Tworzenie pliku wejściowego pamięci rezydentnej, który można dołączyć do wiadomości e-mail.
Chcę utworzyć obiekt pliku i zamiast pobierać dane z fizycznego pliku, chcę samemu dostarczyć bufor.
Następnie, chcę użyć tego pliku, który tak naprawdę nie istnieje na sdcard lub gdziekolwiek poza moją aplikacją, nadać mu nazwę i wysłać jako załącznik (za pomocą EXTRA_STREAM).
znalazłem następujący fragment kodu, przez Adriaan Koster (@adriaankoster), stanowisko Write byte[] to File in Java
// convert byte[] to File
ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
ObjectInputStream ois = new ObjectInputStream(bis);
File fileFromBytes = (File) ois.readObject();
bis.close();
ois.close();
System.out.println(fileFromBytes);
użyłem go do stworzenia tej funkcji
private File fileFromBytes(byte[] buf) {
File f = null;
try {
ByteArrayInputStream bis = new ByteArrayInputStream(buf);
ObjectInputStream ois = new ObjectInputStream(bis);
f = (File) ois.readObject();
bis.close();
ois.close();
}
catch (Exception e) {}
return f;
}
a tu gdzie jestem utknąłem, ponieważ kiedy go używam:
// When sent as body the mail is sent OK
// emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, dump());
// When I try to attach the mail is empty
emailIntent.putExtra(android.content.Intent.EXTRA_STREAM, fileFromBytes(dump().getBytes()));
Wiem z przykładów, które widziałem Argument cond powinien być identyfikatorem URI, ale: w jaki sposób utworzyć URI wirtualny, aby pasował do mojego pliku?
EDYCJA: Opcja dołączania danych bezpośrednio z aplikacji jest ważna w przypadku niektórych aplikacji. Mianowicie zabezpieczenia aplikacji bankowych, które nie chcą zbytnio przenosić poufnych danych. Z pewnością, jeśli dane nie dotrą do sdcard i trafią bezpośrednio do załącznika pocztowego, trudniej jest je wykryć niż w pamięci aplikacji.
To nie jest mój konkretny przypadek, ale chciałem podkreślić, że ta zdolność jest ważna.
@adriaankoster, Jeśli tam jesteś, przeczytaj ten post. Może możesz pomóc. – ilomambo