comportamiento diferente de un método androide

votos
0

Tengo un método que crea una lista de directorios y archivos en el dispositivo. Noté que funciona extraño y no puedo entender por qué. Aquí el código:

root = new File(Environment.getExternalStorageDirectory().getPath());
curFolder = root;

dialog = new Dialog(WriteResponseMess.this);
                dialog.setContentView(R.layout.dialog_layout);
                dialog.setCanceledOnTouchOutside(true);

                textFolder = dialog.findViewById(R.id.folder);
                buttonUp = dialog.findViewById(R.id.up);
                buttonUp.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        ListDir(curFolder.getParentFile());
                    }
                });


                dialog_ListView = dialog.findViewById(R.id.dialoglist);

                dialog_ListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                    @RequiresApi(api = Build.VERSION_CODES.O)
                    @Override
                    public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
                        File selected = new File(curFolder, fileList.get(position));
                        if (selected.isDirectory()) {
                            ListDir(selected);
                        } else {
                            if (array.size() == 0) {
                                array = new JsonArray();
                                array = uploadFiles(array, selected.getName(), convertFileToString(selected.getPath()));
                            } else {
                                if (array.toString().contains(selected.getName())) {
                                    Log.w(MY_TAG, CONTAINS);
                                    Toast.makeText(WriteResponseMess.this, R.string.attaching_message, Toast.LENGTH_SHORT).show();
                                } else {
                                    array = uploadFiles(array, selected.getName(), convertFileToString(selected.getPath()));
                                }

                            }
                            //Log.w(MY_TAG, String.valueOf(array.getAsJsonArray()));
                            ms.setArray(array);
                        }
                    }
                });

y aquí cómo creo una lista de mis carpetas:

void ListDir(File f) {
        if (f.equals(root)) {
            buttonUp.setEnabled(false);
        } else {
            buttonUp.setEnabled(true);
        }

        curFolder = f;
        textFolder.setText(f.getPath());
        String[] files = f.list();
        fileList.clear();
        if (files != null) {
            fileList.addAll(Arrays.asList(files));
        }
        ArrayAdapter<String> directoryList = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, fileList);
        dialog_ListView.setAdapter(directoryList);
    }

en mi emulador (GenyMotion) funciona bastante bien, en mi teléfono móvil Huawei veo diálogo sólo vacía sin ningún carpetas y archivos, en mi segundo dispositivo - Xiaomi puedo ver situación similar a mi primer dispositivo. ¿Por qué funciona diferente y cómo puedo solucionarlo?

Publicado el 27/11/2018 a las 16:58
fuente por usuario
En otros idiomas...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more