Как открыть только изображение из папок файлового менеджера в Android активности программно - PullRequest
0 голосов
/ 08 ноября 2019

Я разрабатываю приложение для галереи Android, поэтому я хочу открывать только папку изображений / фотографий, когда нажимаю кнопку выбора файла,

Я пытаюсь открыть ее, но отображаются все ненужные папки. Активность открытия (музыка / видео / контакт / .etc). Я хочу открывать только эти папки изображений и файлов.

Это мой код выбора файлов. Я использую ACTION_PICK для открытой деятельности

 public void showFileChooser(View v) {

            Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
            intent.setType("/*");

            if(Build.VERSION.SDK_INT >= 15 && Build.VERSION.SDK_INT <= 18){
                intent.putExtra(Intent.EXTRA_LOCAL_ONLY,true);
                intent.setAction(Intent.ACTION_GET_CONTENT);

                try {
                    startActivityForResult(
                            Intent.createChooser(intent, "Select Picture"),FILE_SELECT_CODE);
                } catch (ActivityNotFoundException ex) {
                    // Potentially direct the user to the Market with a Dialog
                    Toast.makeText(this, "Please install a File Manager.",
                            Toast.LENGTH_SHORT).show();
                }

            }

           else if(Build.VERSION.SDK_INT >= 19){
                intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE,true);
                intent.putExtra(Intent.EXTRA_LOCAL_ONLY,true);
                intent.setAction(Intent.ACTION_PICK);

                try {
                    startActivityForResult(
                            Intent.createChooser(intent, "Select Picture"),FILE_SELECT_CODE);
                } catch (ActivityNotFoundException ex) {
                    // Potentially direct the user to the Market with a Dialog
                    Toast.makeText(this, "Please install a File Manager.",
                            Toast.LENGTH_SHORT).show();
                }
            }

           else {
               Log.e("no","no");
            }

}

Я хочу показать это так

Спасибо.

1 Ответ

0 голосов
/ 08 ноября 2019

Попробуйте:

if (Build.VERSION.SDK_INT >= 23) {
                    if (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
                        requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 101);
                    } else {
                        Intent intent = new Intent();
                        intent.setType("image/*");
                        intent.setAction("android.intent.action.PICK");
                        startActivityForResult(Intent.createChooser(intent, "Select picture using"), 101);
                    }
                } else {
                    Intent intent = new Intent();
                    intent.setType("image/*");
                    intent.setAction("android.intent.action.PICK");
                    startActivityForResult(Intent.createChooser(intent, "Select picture using"), 101);
                }

, если вам нужен список папок, вы можете использовать одну из этих библиотек

https://github.com/topics/android-image-picker

...