web-dev-qa-db-fra.com

Comment obtenir mon Android

Il est possible d'obtenir le chemin d'accès au dossier de téléchargement interne de l'appareil Android Android?

16
Andrey

si un appareil possède une carte SD, vous utilisez:

Environment.getExternalStorageState() 

si vous n'avez pas de carte SD, vous utilisez:

Environment.getDataDirectory()

s'il n'y a pas de carte SD, vous pouvez créer votre propre répertoire sur l'appareil localement.

    //if there is no SD card, create new directory objects to make directory on device
        if (Environment.getExternalStorageState() == null) {
                        //create new file directory object
            directory = new File(Environment.getDataDirectory()
                    + "/RobotiumTestLog/");
            photoDirectory = new File(Environment.getDataDirectory()
                    + "/Robotium-Screenshots/");
            /*
             * this checks to see if there are any previous test photo files
             * if there are any photos, they are deleted for the sake of
             * memory
             */
            if (photoDirectory.exists()) {
                File[] dirFiles = photoDirectory.listFiles();
                if (dirFiles.length != 0) {
                    for (int ii = 0; ii <= dirFiles.length; ii++) {
                        dirFiles[ii].delete();
                    }
                }
            }
            // if no directory exists, create new directory
            if (!directory.exists()) {
                directory.mkdir();
            }

            // if phone DOES have sd card
        } else if (Environment.getExternalStorageState() != null) {
            // search for directory on SD card
            directory = new File(Environment.getExternalStorageDirectory()
                    + "/RobotiumTestLog/");
            photoDirectory = new File(
                    Environment.getExternalStorageDirectory()
                            + "/Robotium-Screenshots/");
            if (photoDirectory.exists()) {
                File[] dirFiles = photoDirectory.listFiles();
                if (dirFiles.length > 0) {
                    for (int ii = 0; ii < dirFiles.length; ii++) {
                        dirFiles[ii].delete();
                    }
                    dirFiles = null;
                }
            }
            // if no directory exists, create new directory to store test
            // results
            if (!directory.exists()) {
                directory.mkdir();
            }
        }// end of SD card checking

ajouter des autorisations sur votre manifest.xml

<uses-permission Android:name="Android.permission.WRITE_EXTERNAL_STORAGE" />

Bon codage ..

32
Dinithe Pieris

Pour trouver des emplacements sur le stockage interne de votre application, utilisez getFilesDir (), appelé dans n'importe quel contexte (tel que votre activité, pour obtenir un objet File.

pourquoi ne pouvez-vous pas utiliser Environment.getExternalStorageDirectory () pour obtenir/storage/sdcard0/path à partir du code?

devez également ajouter des autorisations.

<uses-permission Android:name="Android.permission.WRITE_EXTERNAL_STORAGE" />

J'espère que vous obtiendrez votre solution ...

12
Nayan Rath