Saya ingin memulai sebuah intentchooser untuk aplikasi yang dapat mengembalikan segala jenis file
Saat ini saya menggunakan (yang saya salin dari kode sumber email Android untuk lampiran file)
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("*/*");
Intent i = Intent.createChooser(intent, "File");
startActivityForResult(i, CHOOSE_FILE_REQUESTCODE);
Tapi itu hanya menampilkan "Galeri" dan "Pemutar musik" di Galaxy S2 saya. Ada file explorer di perangkat ini dan saya ingin file itu muncul dalam daftar. Saya juga ingin aplikasi kamera ditampilkan dalam daftar, sehingga pengguna dapat mengambil gambar dan mengirimkannya melalui aplikasi saya. Jika saya menginstal file manager Astro, itu akan menanggapi maksud itu juga. Pelanggan saya adalah pemilik Galaxy SII saja dan saya tidak ingin memaksa mereka menginstal file manager Astro karena mereka sudah memiliki file manager dasar tetapi cukup.
Ada ide tentang bagaimana saya bisa mencapai ini? Saya cukup yakin bahwa saya sudah melihat pengelola file default muncul di menu seperti itu untuk memilih file, tetapi saya tidak ingat di aplikasi mana.
sumber
Jawaban:
Bukan untuk kamera tapi untuk file lain ..
Di perangkat saya, saya telah
ES File Explorer
menginstal dan Ini hanya berfungsi dalam kasus saya ..sumber
onActivityResult()
- Anda bisa mendapatkanUri
File.PICKFILE_RESULT_CODE
seharusnyaPICKFILE_REQUEST_CODE
.File explorer Samsung tidak hanya membutuhkan tindakan kustom ( com.sec.android.app.myfiles.PICK_DATA ), tetapi juga bagian kategori (Intent. CATEGORY_DEFAULT ) dan jenis mime harus diteruskan sebagai ekstra.
Anda juga dapat menggunakan tindakan ini untuk membuka banyak file: com.sec.android.app.myfiles.PICK_DATA_MULTIPLE Bagaimanapun, inilah solusi saya yang berfungsi pada Samsung dan perangkat lain:
Solusi ini bekerja dengan baik untuk saya, dan mungkin akan berguna untuk orang lain.
sumber
ini berfungsi untuk saya di galaxy note, kontak acaranya, pengelola file yang diinstal pada perangkat, galeri, pemutar musik
di sini dapatkan jalur
onActivityResult
aktivitas.sumber
Ini memberi saya hasil terbaik:
sumber
Ternyata penjelajah file Samsung menggunakan tindakan kustom. Inilah sebabnya mengapa saya dapat melihat penjelajah file Samsung ketika mencari file dari aplikasi samsung, tetapi tidak dari milik saya.
Tindakannya adalah "com.sec.android.app.myfiles.PICK_DATA"
Saya membuat Activity Picker khusus yang menampilkan aktivitas yang memfilter kedua maksud.
sumber
Jika Anda ingin mengetahui hal ini, terdapat pustaka sumber terbuka yang disebut aFileDialog yang kecil dan mudah digunakan yang menyediakan pemilih file.
Perbedaan dengan pustaka pemilih file lain untuk Android adalah aFileDialog memberi Anda opsi untuk membuka pemilih file sebagai Dialog dan sebagai Aktivitas.
Ini juga memungkinkan Anda untuk memilih folder, membuat file, memfilter file menggunakan ekspresi reguler dan menampilkan dialog konfirmasi.
sumber
Jawaban lainnya tidak salah. Namun, sekarang ada lebih banyak opsi untuk membuka file. Misalnya, jika Anda ingin aplikasi memiliki akses permanen dan jangka panjang ke sebuah file, Anda dapat menggunakan
ACTION_OPEN_DOCUMENT
. Lihat dokumentasi resmi: Buka file menggunakan kerangka akses penyimpanan . Lihat juga jawaban ini .sumber