ネイティブ モジュール内から Titanium によって保存されたファイルにアクセスするにはどうすればよいですか? 私のコードでは、カメラ (Ti.Media) で撮影した写真をファイルに保存します。次に、モジュールから同じファイルを読み取ろうとしています。nativePath
をモジュールのメソッドに渡しています。しかし、モジュールでファイルが見つからないというエラーが発生し続けます。
カメラの成功のコールバックには、次のコードがあります。
// earlier in the code
var tiexif = require('com.me.tiexif');
Ti.Media.showCamera({
success: function(event) {
console.log("TIEXIF: showCamera.success()");
anImageView.image = event.media; // works
if (Ti.Filesystem.hasStoragePermissions()) {
console.log("TIEXIF: hasStoragePermissions");
var file = Titanium.Filesystem.getFile(Ti.Filesystem.externalStorageDirectory, 'testphoto.jpg');
console.log("TIEXIF: nativePath: " + file.nativePath);
file.write(event.media);
someUILabel.text = tiexif.getExifOrientation(file.nativePath);
} else ...
}, ...
})
ログにこれが表示されます:
[INFO] TIEXIF: showCamera.success()
[ERROR] File: fail readDirectory() errno=20
[ERROR] File: fail readDirectory() errno=13
[ERROR] File: fail readDirectory() errno=13
[ERROR] File: fail readDirectory() errno=13
[INFO] TIEXIF: hasStoragePermissions
[INFO] TIEXIF: nativePath: file:///storage/emulated/0/com.me.exiftest/testphoto.jpg
[WARN] ExifInterface: Invalid image.
[WARN] ExifInterface: java.io.FileNotFoundException: file:/storage/emulated/0/com.me.exiftest/testphoto.jpg: open failed: ENOENT (No such file or directory)
externalStorageDirectory
、applicationDataDirectory
、tempDirectory
、およびapplicationCacheDirectory
すべて同じ結果で試しました。