svnをターミナルで使うと忘れてるのでメモ
svn log
だと履歴が見れますが、全て出てくるので
svn log --limit 5
としたら最新5件だけ出てきていいかんじです
svnをターミナルで使うと忘れてるのでメモ
svn log
だと履歴が見れますが、全て出てくるので
svn log --limit 5
としたら最新5件だけ出てきていいかんじです
Android 6.0 (Marshmallow / マシュマロ)の実機でデバッグしてたらPublicディレクトリに書き込めませんでした
Lolipopだったら問題なかったのに..
調べてみたらAndroid 6からはパーミッションが変わってるからでした
Working with System Permissions | Android Developers
をみて対応した書き方をするかですが、手っ取り早くtarget SDK versionを下げました
build.gradleファイルを開いて
targetSdkVersion 22
に変更
これでコンパイルしなおせば、とりあえず書き込めるようになりました
targetSdkVersion 23がAndroid 6です
正しい対応はもうちょっとAndroid 6 がシェア出てからにします
参考)
Androidアプリで書きだしたファイルがPCで見えない
Android 6(M) permission issue (create directory not working) – Stack Overflow
Androidアプリを作っていて、データをファイルに保存、USBでAndroidをつないでファイルを取り出そうとすると..ない
で困ったのでメモ
Android端末は Nexus 5 (Lolipop) と Nexus 5x (Marshmallow) を使いました
PCはWindows 7とUbuntu 14.4
Android端末でデバッグしてます
ファイルを書きだしたソースコードはこんな感じ
File file = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS);
fw = new FileWriter(file, true);
fw.write("sample");
fw.close();
マニフェストにパーミッションを追加
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="sample">
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application>
・・・・
</application>
</manifest>
External StrorageのDocumentsディレクトリを指定、ここに保存したらどこからでも見れるはず
Android端末でアプリを使って見てみるとちゃんと保存されてますが、
PCへUSBでつないで見ると見当たりません
MediaScannerConnectionを使ってやると見えるようになるようで、変更
File file = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS);
MediaScannerConnection.scanFile(this, new String[]{file.getAbsolutePath()}, null, null);
fw = new FileWriter(file, true);
fw.write("sample");
fw.close();
これで見えるようになりました!
Androidでcsvを内部ストレージに保存してみました
内部ストレージに保存すると、他のアプリから見れないので取り出すことができません
参考)
ファイルを保存する | Android Developers
Android StudioでBlank Activityを作成してやってみました
MainActivity.javaにonCreateとかに
String filename = "test.csv";
String output = "サンプル";
FileOutputStream outputStream;
try {
outputStream = openFileOutput(filename, Context.MODE_PRIVATE);
outputStream.write(output.getBytes());
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
を記載、起動するだけで保存されます
確認するため、terminalから
$ adb shell
$ run-as jp.sample.sampleapp
jp.sample.sampleappのところは自分のアプリ名にしてください
cat data/data/p.co.sample.sampleapp/file/test.csv
が保存されたのが確認できました