0

ネイティブ モジュール内から 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)

externalStorageDirectoryapplicationDataDirectorytempDirectory、およびapplicationCacheDirectoryすべて同じ結果で試しました。

4

2 に答える 2

2

接尾辞を削除してくださいfile:/。これはチタン固有のものです。Android のパスは次で始まります/

于 2016-12-20T11:11:26.797 に答える