Próbuję odebrać obraz z Galerii Androida za pośrednictwem intencji ACTION_SEND. Ustawiłem odpowiednie filtry zamiarów, a Galeria otworzy moją aplikację. Teraz chcę wiedzieć, jak uzyskać dane obrazu. Nie mogę znaleźć żadnych przykładów w Internecie, jak to zrobić. Sądzę, że ścieżka znajduje się gdzieś w intent.getData(), ale jak dokładnie mogę pobrać ten obraz z galerii?Odbieranie intencji ACTION_SEND z galerii
8
A
Odpowiedz
15
Znaleziono to w źródle Picasy. Daje właściwą ścieżkę obrazu.
Intent intent = getIntent();
if (Intent.ACTION_SEND.equals(intent.getAction())) {
Bundle extras = intent.getExtras();
if (extras.containsKey(Intent.EXTRA_STREAM)) {
Uri uri = (Uri) extras.getParcelable(Intent.EXTRA_STREAM);
String scheme = uri.getScheme();
if (scheme.equals("content")) {
String mimeType = intent.getType();
ContentResolver contentResolver = getContentResolver();
Cursor cursor = contentResolver.query(uri, null, null, null, null);
cursor.moveToFirst();
String filePath = cursor.getString(cursor.getColumnIndexOrThrow(Images.Media.DATA));
0
Nie wiesz o zamiarze wysłania, ale podczas przenoszenia zysków z zamiarów Kostka do Mediastore o zdjęcie, to idzie mniej więcej tak:
Uri selectedImage = intent.getData();
AssetFileDescriptor fd = getContentResolver()
.openAssetFileDescriptor(selectedImage, "r");
FileInputStream s = fd.createInputStream();
// your image data processing code here
Bądź jednak ostrożny - można pracować z plikami megapikselowych 5+ , które może być dość duże (szczególnie jeśli rozpakowujesz je do bitmap do przetworzenia), a twoja pamięć jest dość ograniczona.
Powiązane problemy
- 1. Błąd Odbieranie emisji intencji Problem
- 2. Debugowanie intencji
- 3. Dodanie działania widocznego tylko w określonych aplikacjach do ACTION_SEND?
- 4. Text File Sharing użyciu ACTION_SEND
- 5. android opcja intencją action_send tylko raz
- 6. Ustawianie napisów w Galerii galerii Galeria
- 7. wybierz miniaturę z Android galerii
- 8. Filtr intencji: intent.getData() zwraca wartość null
- 9. Umieszczenie ListView wewnątrz Galerii
- 10. Dodawanie obrazów do galerii
- 11. Odbieranie zdarzenia dwukrotnego kliknięcia
- 12. Android MediaScanner: Usuń pliki zdjęć z galerii
- 13. jak ukryć obrazy z galerii android
- 14. Jak załadować obraz z widoku galerii?
- 15. dzwonisz do galerii fancybox z innym linkiem
- 16. jak wybrać wideo z galerii w phonegap?
- 17. Kliknięcie za szybko z galerii slajdów (jquery)
- 18. Android otrzymuje tylko obraz z galerii
- 19. Przeciąganie i upuszczanie obrazów z galerii Android
- 20. Przeszukiwanie intencji wyszukiwania rynku?
- 21. Zbieranie i odbieranie śmieci
- 22. Możliwość zakrzywionej galerii
- 23. Wysyłanie/odbieranie pakietów z gniazdami TCP
- 24. Android: Udostępnianie tekstu i obrazu (URL) za pomocą intencji
- 25. Android uruchamiający odtwarzacz muzyki z użyciem intencji
- 26. Android używający intencji otwarcia fragmentu z działania
- 27. Odbieranie zdarzeń klawiatury iPhone'a
- 28. Selektywne odbieranie w Erlang
- 29. Uruchom przeglądarkę intencji, aby wyświetlić obraz z adresu URL
- 30. Odbiornik transmisji Android nie otrzymuje intencji
W jakim pliku i gdzie w tym pliku ma zostać umieszczony. –