我需要完成以下步骤:
第一个真的很容易。使用Intent.ACTION_GET_CONTENT获取文件时没有任何问题。我也可以得到文件的MimeType。但我无法复制。
我尝试使用 FileInputStream 进行复制,但显然我没有获得许可。我真的希望有人可以帮助我。
权限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
意图通话
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
intent.addCategory(Intent.CATEGORY_OPENABLE);
if ( intent.resolveActivity(getPackageManager()) != null) {
startActivityForResult(intent, REQUEST_FILE_GET);
}
尝试复制文件失败
FileInputStream in = (FileInputStream) getContentResolver().openInputStream( data.getData());
FileOutputStream out = new FileOutputStream( "copy.jpg ");
FileChannel inChannel = in.getChannel();
FileChannel outChannel = out.getChannel();
inChannel.transferTo(0, inChannel.size(), outChannel);
in.close();
out.close();
错误:android.system.ErrnoException: open failed: EROFS (Read-only file system)
答案 0 :(得分:3)
您正在尝试在根目录tcrossprod(table(df))*!diag(3)
# Products
#Products Product a Product b Product c
# Product a 0 2 1
# Product b 2 0 1
# Product c 1 1 0
中创建输出流文件,该目录是只读的。
使用其中一种Environment方法(例如/copy.jpg
)或Context方法之一(例如getExternalStorageDirectory()
)来构建您编写的目录的路径访问。
例如:
getFilesDir()
此documentation描述了在内部或外部存储中存储文件的不同选项。