问题
i have some images should be displayed in the Application, the Q. is how to copy the images i am putting in the assets folder in the code to a folder under the SC card of the user on install the application on the phone
回答1:
Try with this,
private void copyAssets() {
AssetManager assetManager = getAssets();
String[] files = null;
try {
files = assetManager.list("");
} catch (IOException e) {
Log.e("tag", e.getMessage());
}
for(String filename : files) {
InputStream in = null;
OutputStream out = null;
try {
in = assetManager.open(filename);
out = new FileOutputStream("/sdcard/" + filename);
copyFile(in, out);
in.close();
in = null;
out.flush();
out.close();
out = null;
} catch(Exception e) {
Log.e("tag", e.getMessage());
}
}
}
private void copyFile(InputStream in, OutputStream out) throws IOException {
byte[] buffer = new byte[1024];
int read;
while((read = in.read(buffer)) != -1){
out.write(buffer, 0, read);
}
}
Don't forget to add this permission in your manifiest
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
回答2:
So I needed to do something similar except for all files, and on boot for an AOSP package. Here is a link to the package if anyone is interested (see AssetCopyReceiver.java).
https://github.com/Paradopolis/AssetCopier/blob/master/src/com/paradopolis/assetcopier/AssetCopyReceiver.java
This will copy all files under sdcard to their respective locations and it should also work with subdirectories. It works as an on boot receiver which won't work for a regular app, so it will need to be modified but the code is the same. It is heavily based on the first answer as I started from there, and corrected some issues that I found as I needed to extend it.
来源:https://stackoverflow.com/questions/12173468/copy-images-from-assest-to-sd-card-on-install-android-application