Ceci est simple, mais ne fonctionne pas. J'essaie de créer un fichier temporaire (plus tard un fichier de stockage permanent) pour la prévisualisation d'un fichier MP3. J'ai essayé les variantes suivantes du suffixe comme exemple suivant:android createTempFile renvoie l'autorisation refusée?
public class StudyFileIo extends Activity {
private static final String TAG = "StudyFileIo";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
try {
File tempFooFile = File
.createTempFile("foo", "dat");
Log.i(TAG, tempFooFile.getAbsolutePath());
} catch (IOException e) {
Log.e(TAG, e.toString());
e.printStackTrace();
}
}
}
Log:
09-07 11:25:20.299 E/StudyFileIo(8859): java.io.IOException: Permission denied
09-07 11:25:20.299 W/System.err(8859): java.io.IOException: Permission denied
09-07 11:25:20.299 W/System.err(8859): at java.io.File.createNewFileImpl(Native Method)
09-07 11:25:20.299 W/System.err(8859): at java.io.File.createNewFile(File.java:1160)
09-07 11:25:20.299 W/System.err(8859): at java.io.File.createTempFile(File.java:1224)
09-07 11:25:20.299 W/System.err(8859): at java.io.File.createTempFile(File.java:1182)
09-07 11:25:20.299 W/System.err(8859): at com.mobibob.studyfileio.StudyFileIo.onCreate(StudyFileIo.java:25)
09-07 11:25:20.299 W/System.err(8859): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
09-07 11:25:20.299 W/System.err(8859): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
09-07 11:25:20.309 W/System.err(8859): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
09-07 11:25:20.309 W/System.err(8859): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
09-07 11:25:20.309 W/System.err(8859): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
09-07 11:25:20.309 W/System.err(8859): at android.os.Handler.dispatchMessage(Handler.java:99)
09-07 11:25:20.309 W/System.err(8859): at android.os.Looper.loop(Looper.java:123)
09-07 11:25:20.309 W/System.err(8859): at android.app.ActivityThread.main(ActivityThread.java:4627)
09-07 11:25:20.309 W/System.err(8859): at java.lang.reflect.Method.invokeNative(Native Method)
09-07 11:25:20.309 W/System.err(8859): at java.lang.reflect.Method.invoke(Method.java:521)
09-07 11:25:20.319 W/System.err(8859): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:876)
09-07 11:25:20.319 W/System.err(8859): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:634)
09-07 11:25:20.319 W/System.err(8859): at dalvik.system.NativeStart.main(Native Method)
est-il un paramètre AndroidManifest.xml que je suis absent (j'utilise manifeste par défaut)?
Merci Marc. J'avais essayé le formulaire avec le répertoire, mais je fournissais toujours un répertoire auquel je n'avais pas accès, getCacheDirectory. Votre suggestion a fonctionné. Pendant ce temps, je suis passé à getBaseContext(). OpenFileOutput (...) – mobibob