0

AndroidおよびiOS用のインテルxdkを使用してアプリケーションを構築しています。AndroidのSDカードにPDFを保存するのに問題があります。ユニットのファイル ディレクトリを取得でき、アラート テキストは正常に進行していることを示しています。しかし、PDFを保存しようとしても何も起こりません。アプリケーションは「fileTransfer.download(...)」をスキップするだけで、例外も何もありません。

私はおそらく何かが欠けていますが、ファイル転送はサポートされていませんか? 探していましたが、運がありません。すべてのアイデアは大歓迎です:o)

/Anders 私のコード:

function download()
{
 window.appRootDirName = "download_test";
            document.addEventListener("deviceready", onDeviceReady, false);

            function onDeviceReady() {
                alert("device is ready");
                window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
            }

            function fail() {
                alert("failed to get filesystem");
            }

            function gotFS(fileSystem) {
                alert("filesystem got");
                window.fileSystem = fileSystem;
                fileSystem.root.getDirectory(window.appRootDirName, {
                    create: true,
                    exclusive: false
                }, dirReady, fail);
            }

            function dirReady(entry) {
                window.appRootDir = entry;
                alert("application dir is ready");
            }

             var filePathx = window.appRootDir.fullPath + "/test.pdf";
            alert(filePathx);
            try{
            downloadFile = function() {
                    var fileTransfer = new FileTransfer();

                    var url = "http://myserver/file.pdf";
                    var filePath = window.appRootDir.fullPath + "/test.pdf";


                        fileTransfer.download(
                        url, filePath, function(entry) {
                            alert("download complete: " + entry.fullPath);
                        }, function(error) {
                            alert("download error" + error.source);
                        });


            }
            }
            catch(e)
                    {
                        alert("error in filetransfer.download: " + e.message);
                    }
}
4

1 に答える 1

1

マニフェスト ファイルに WRITE_EXTERNAL_STORAGE パーミッションを含める必要がありますが、インテル XDK はこのパーミッションを有効にするための UI を提供しません。バグを報告します。 http://developer.android.com/reference/android/Manifest.permission.html#WRITE_EXTERNAL_STORAGE

Cordova for Android ビルドを使用できるはずです。テストしたばかりの PhoneGap Audio サンプル アプリケーションがありますが、動作しません。Intel XDK のバグを報告しました。

次のようにして、Cordova Android ビルドを試すことができます。

Intel XDK バージョン 0876 を使用します。

  • [新しいプロジェクトを開始] をクリックします
  • [デモを使用する] をクリックします
  • PhoneGap オーディオをクリックします。
  • [このデモを使用] をクリックします
  • プロジェクトに名前を付ける
  • [作成] をクリックします。
  • 開発タブをクリックします
  • 「intelxdk.config.xml」をクリックします
  • 独自のプロジェクト用にこのファイルをコピーします
  • 4 行目: プロジェクトの名前に変更します。
  • 4 行目: 記号やスペースを含まないユーザー名に変更します。
    • これは、[ビルド] タブに移動して確認できます。
    • Cordova for Android BUILD ボタンをクリックします。
    • [コードをアップロード] をクリックします
    • あなたのチーム名を確認してください: 緑の Build App Now ボタンの上にある右側の 'Cordova Development Build' ボックスに表示されます。
    • [ビルド ページを閉じる] をクリックします。
    • [開発] をクリックし、ビルド画面と一致するように更新します。4 行目: id="usernamewithoutsymbols.audioproject"
    • 注: チーム名を見つけるために必要な UI を改善するために、バグも報告します。
  • ビルドタブをクリック
  • Cordova for Android BUILD ボタンをクリックします。
  • [コードをアップロード] をクリックします
  • [今すぐアプリをビルド] をクリックします
  • [ビルドのダウンロード] をクリックします

adb install .apk を使用して .apk をインストールします

  • アプリケーションを起動する
  • 赤いレコード アイコンをタップします
  • 停止をタップ
  • 再生をタップ

このアプリは、Cordova API を使用してオーディオ ファイルを作成および保存する必要があります。4.0 と Android 2.3 の携帯電話でこれを試しましたが、うまくいきませんでした。バグが報告されました。問題が追跡され次第、この投稿を更新します。

ドキュメントはhttps://software.intel.com/en-us/html5/articles/using-the-cordova-for-android-ios-etc-build-optionにあります。

于 2014-05-08T20:48:38.970 に答える