ネイティブモジュール内でTitaniumによって保存されたファイルにアクセスするにはどうすればよいですか?私のコードでは、カメラ(Ti.Media)で撮影した画像をファイルに保存します。次に、私は自分のモジュールから同じファイルを読み込もうとしています。私はnativePath
をモジュールのメソッドに渡しています。しかし、私は自分のモジュールでファイルが見つかりませんエラーを取得し続けます。カメラの成功コールバックでチタン/ Androidは、ネイティブモジュールからチタンで作成されたファイルにアクセスします。
、私はこのコードを持っている:
// 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
すべてとして試してみました同じ結果。
私はExifInterfaceを使用しようとしています。コンストラクタはドキュメントがファイル名を参照するStringを受け取ります。私はそれがファイルパスを意味すると仮定していたかもしれませんが、多分それは単にアプリケーションのデータディレクトリに関連した名前です。 https://developer.android.com/reference/android/media/ExifInterface.html#ExifInterface(java.lang.String) – skypanther
ああ、ファイルを開き、そのexifにアクセスするfh.imagefactoryへのリンクを追加しました情報(それはファイルの部分を削除します)それはあなたのためにも働くはずです – miga
ありがとう、freshheadsレポへのリンクは素晴らしいです。これは、Tiデベロッパーがモジュールを使用しやすいように、アプリ側よりも優れています。 – skypanther