gpt4 book ai didi

android createTempFile 抛出权限被拒绝?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:33:21 24 4
gpt4 key购买 nike

这很简单,但行不通。我正在尝试创建一个临时文件(后来是一个永久存储文件)来预览 MP3 文件。我已经尝试了以下后缀变体,如下例所示:

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();
}

}
}

日志:

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)

是否缺少某些 AndroidManifest.xml 设置(我使用的是默认 list )?

最佳答案

您需要在应用程序拥有的目录中创建临时文件。你应该使用 createTempFile(String prefix, String suffix, File directory) ,其中 directory 是要写入临时文件的位置。您可以使用 Context.getFilesDir() 的结果获取目录 的有效位置或 Context.getDir(String name, int mode) .

关于android createTempFile 抛出权限被拒绝?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3660572/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com