Muszę wysłać byte[] data
z Activity1
do Activity2
, aby napisać data("FileOutputStream.write(data)")
w pliku jpg. Mój ostateczny plik .jpg może przekroczyć 1 MB.Jak wysłać tablice z dużą liczbą bajtów między działaniami w systemie Android?
Activity1:
public void onPictureTaken(byte[] data, Camera camera) {
Log.w("ImageSizeMyApp", String.valueOf(data.length));
mCamera.startPreview();
Intent shareWindow = new Intent(Activity1.this, Activity2.class);
shareWindow.putExtra("photo",data);
startActivity(shareWindow);
closeCamera();
Log.w("CameraActivity:", "onPictureTaken");
}
W Activity2:
Bundle extras = getIntent().getExtras();
data = extras.getByteArray("photo");
używam Log.w("ImageSizeMyApp", String.valueOf(data.length));
uzyskać to:
ImageSizeMyApp: 446367 (ta wielkość wysyła do następnej aktywności i wszystko jest dobrze)
ImageSizeMyApp: 577368 (ta wielkość zamyka mój aparat i nie wysyła do następnej aktywności)
Więc 500kb jest wymiar granica intencyjny. Czy istnieje inna stabilna metoda wysyłania mojego byte[]
większego niż 500 kb pomiędzy działaniami?
Wszelkie odniesienia lub porady są mile widziane. Z góry dziękuję!
Aktualizacja: Czy mogę utworzyć inną klasę do przechowywania tej tablicy bajtów []? A może lepiej użyć zmiennej statycznej?
gdzie jest, jpg przechowywane? możesz użyć ścieżki i przekazać, że pomiędzy działaniami – Raghunandan
odsyłaj ten http://stackoverflow.com/questions/11519691/passing-image-from-one-activity-another-activity – sasikumar
@Raghunandan .jpg jest tworzony i przechowywany na urządzeniu tylko w drugim działaniu. Chcę zrobić plik jpg i przechowywać go lokalnie po naciśnięciu przycisku. –