Domanda

Quindi sto cercando di consentire all'utente di scegliere un particolare pezzo di media con la mia applicazione Android usando il metodo qui descritto:Accedi alle immagini dall'app Pictures nella mia app Android

Funziona alla grande, tranne per il fatto che apparentemente posso scegliere solo tra video o foto per presentare l'utente, non entrambi allo stesso tempo. C'è un buon modo per farlo con:

startActivityForresult (nuovo intento (intent.action_pick, android.provider.mediastore.images.media.internal_content_uri), select_image);

Grazie!

È stato utile?

Soluzione

L'ho usato più volte. Il modo migliore è qualcosa di simile:

Intent mediaChooser = new Intent(Intent.ACTION_GET_CONTENT);
//comma-separated MIME types
mediaChooser.setType("video/*, images/*");
startActivityForResult(mediaChooser, 1);

Anche se questo non è perfettamente accurato, ha funzionato bene in tutto ciò in cui l'ho usato. Aprirà un'attività in stile galleria con un elenco di miniature di ogni immagine/video nella galleria dell'utente. L'intento restituito a onActivityResult() ha un extra chiamato "dati" che sarà un contenuto: // URI sul supporto selezionato.

Modifica: oops, per ottenere l'URI sui media selezionati che si desidera effettivamente chiamare getData () Sull'intento che viene passato a OnactivityResult ()

Altri suggerimenti

KIVY - Il modo più semplice è creare un intento per selezionare un pezzo di media e limitarlo al video:

Intent pickMedia = new Intent(Intent.ACTION_GET_CONTENT);
pickMedia.setType("video/*");
startActivityForResult(pickMedia,12345);

Nota - 12345 è l'intero che la tua app deve ascoltare su un callback di richiesta in modo da poter inviare qualsiasi informazione che ricevi dove devi.

Devi quindi avere anche la stessa attività che ascolta le informazioni da rispedire da quell'intento:

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == 12345) {
            if (resultCode == Activity.RESULT_OK) {
                Uri selectedVideoLocation = data.getData();

                // Do something with the data...
            } 

        }
    }

Freddo?

intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, 1);

Prova questo

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
startActivityForResult(intent, 101);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top