Как заставить apk создавать файл на sdcard, когда apk установлен? - PullRequest
4 голосов
/ 20 марта 2011

Я очень новичок в разработке для Android и ищу способ изменить существующий исходный код в eclipse, чтобы при установке apk файл xml копировался изнутри apk в определенную папку на внешнем хранилище.

Есть ли способ сделать это?

1 Ответ

3 голосов
/ 20 марта 2011

См. Вопрос и ответ здесь ... Android: Как создать каталог на SD-карте и скопировать на него файлы из / res / raw ??

РЕДАКТИРОВАТЬ : Думая об этом, я использую папку / assets, а не / res / raw.Это примерно то, что я делаю ...

Сначала получите действительную папку на внешнем хранилище (обычно на SD-карте) ...

File myFilesDir = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/Android/data/com.mycompany.myApp/files");

Замените com.mycompany.myApp в указанном выше пути наИмя пакета вашего приложения.

Затем следующее скопирует все файлы из папки ресурсов с именами файлов, начинающимися с «xyz», например, xyz123.txt, xyz456.xml и т. д.

try {
    AssetManager am = getAssets();
    String[] list = am.list("");
    for (String s:list) {
        if (s.startsWith("xyz")) {
            Log.d(TAG, "Copying asset file " + s);
            InputStream inStream = am.open(s);
            int size = inStream.available();
            byte[] buffer = new byte[size];
            inStream.read(buffer);
            inStream.close();
            FileOutputStream fos = new FileOutputStream(myFilesDir + "/" + s);
            fos.write(buffer);
            fos.close();
        }
    }
}
catch (Exception e) {
    // Better to handle specific exceptions such as IOException etc
    // as this is just a catch-all
}

Обратите внимание, что вам потребуется следующее разрешение в файле AndroidManifest.xml ...

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