あなたが許可を追加してください、外部ストレージに書き込む必要があります。
<manifest ...>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
...
かをチェックし、外部ストレージが読み取りのために利用可能であり、
public boolean isExternalStorageWritable() {
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
return true;
}
return false;
}
ルートを使用することを記述している場合Androidのルートを使用する代わりに公開ディレクトリのあなたは、外部記憶装置上のパブリックファイルを保存したい場合は、getExternalFilesDirを()
public File getAlbumStorageDir(Context context, String albumName) {
// Get the directory for the app's private pictures directory.
File file = new File(context.getExternalFilesDir(
Environment.DIRECTORY_DCIM), albumName);
if (!file.mkdirs()) {
Log.e(LOG_TAG, "Directory not created");
}
return file;
}
使用し、あなたのアプリにプライベートなファイルを保存したい場合は
は、getExternalStoragePublicDirectory()
public File getAlbumStorageDir(String albumName) {
// Get the directory for the user's public pictures directory.
File file = new File(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_DCIM), albumName);
if (!file.mkdirs()) {
Log.e(LOG_TAG, "Directory not created");
}
return file;
}
を使用します
と私は言及を忘れてしまった:
decodeFile
パスを期待し
"作物の意図でSDカードにビットマップファイルを保存しました" - [Androidには 'CROP'' Intent'がありません](https://commonsware.com/blog/2013/01/23/no -android-does-not-have-crop-intent.html)。 "ストリームをデコードできません:java.io.FileNotFoundException:file:/sdcard/oc.jpg" - パスをハードコーディングしないでください( 'Environment.getExternalStorageDirectory()'のようなメソッドを使用してください)、適切なアクセス権を持っていることを確認してください(実行時アクセス許可を含む)。 – CommonsWare
私は文字列を試しましたimageInSD = Environment.getExternalStorageDirectory()。getAbsolutePath()+ "oc.jpg"; image4 = BitmapFactory.decodeFile(imageInSD);しかし、まだ私はビットマップを読み取ることに失敗し、私はランタイム許可 – MKH
'.... getAbsolutePath()+" oc.jpg "'を含む '.getAbsolutePath()+"/oc.jpg "' – greenapps