FLIR カメラから電話の SD カードに熱画像を保存するアプリに取り組んでいます。私は Android Marshmallow を使用しており、FLIR SDK を使用する必要があります。
FLIR SDK にはクラス「フレーム」があります。このクラスには、熱画像を保存するために Java.io.File を必要とするメソッド「Frame.save」があります。これはドキュメントからのものです。
public void save(java.io.File file,
RenderedImage.Palette previewPalette,
RenderedImage.ImageType previewImageType)
throws java.io.IOException,
java.lang.IllegalArgumentException
レンダリングされたビジュアル プレビューと埋め込まれたサーマル データを含むサーマル JPEG ファイルを保存します。
私が正しく理解している場合、KitKat 以降では Storage Access Framework を使用する必要があります。だから私はそれを使いました。Intent を送信し、SD カードの選択したフォルダーに Uri を返します。今、トリッキーな部分に。この関数はファイルを作成し、「Frame.save」メソッドの準備が整った Java.io.File を返す必要があります。
public File getJavaFile (String Name, Uri myUri) {
DocumentFile pickedDir = DocumentFile.fromTreeUri(context, myUri); // Document file aus URI
DocumentFile DocumentFile = pickedDir.createFile("image/plain", Name + ".jpg" );
File file = new File(DocumentFile.getUri().getPath());
if(file.canWrite()){
Log.d(TAG + "/getJavaFile", "File can write");
}else {
Log.e(TAG + "/getJavaFile", "File cannot write");
}
Log.d(TAG + "/getJavaFile:", "File Created:" + file.getPath());
return file;
}
関数が返すファイルは読み取り可能または書き込み可能ではありません...それ以外の場合は、ファイルを直接作成しようとすると、次のようになります。
String root = Environment.getExternalStorageDirectory().toString();
File file = new File(root + "/saved_images");
Log.d(TAG, file.getPath());
次に、システムは常にこのエミュレートされたフォルダーを提供します。
E/MainActivity: /storage/emulated/0/saved_images
問題は、パブリック ストレージ スペースに保存されている使用可能な Java ファイルを取得する方法です。お時間をいただきありがとうございます。