1

カスタム ファイル タイプ ( .vds) のファイルをレンダリングするために使用する Android アプリを開発しました。ローカル ストレージに保存されているすべてのファイル ( file) に対してアプリを起動でき.vdsますが、ファイルが Box に保存されていて、Box Android アプリを使用してそれらにアクセスしようとすると、問題が発生します。次のインテント フィルタを作成しました。

  <intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:scheme="file" />
    <data android:host="*" />
    <data android:pathPattern=".*\\.vds" />

問題は、対応するアクティビティでインテントを取得できることですが、URI を読み取ろうとすると (レンダリング ロジックはファイルの場所に基づいているため)、SD カードに存在しないパスが返されます。Box Android ネイティブ アプリを使用してファイルを開こうとするとどうなりますか? ファイルはどこにダウンロードされ、ダウンロードしたファイルにはどのようにアクセスする必要がありますか?

4

2 に答える 2

0

上記のように、私は同じ問題に遭遇しました。The Right Solution(TM) と思われるものを見つけられませんでしたが、他の人に役立つかもしれないいくつかの追加事項があります。

まず、Box でファイルをダウンロードすると (オフラインのマークとは異なります)、ダウンロード結果ダイアログまたはアプリの下部に表示される後続の通知でアイテムをクリックすると機能することがわかりました。ただし、その通知を無視すると、Box 内からダウンロードしたファイルに戻る方法はないようです。

2 つ目は、まだ詳しく調べていないということですが、存在しないファイルのインテントでファイル名情報を使用して、Box API を介してファイルを取得できると思います。クラウドまたは API 呼び出しを介してオフライン アイテムを取得します。Box がこれらの偽のファイル パスを処理しようとしているのは、これが実際に何なのか疑問に思っています。

12-04 10:09:29.318: INFO/ActivityManager(607): START u0
{act=android.intent.action.VIEW dat=file:///non_existent_dummy_folder/foo.abcdef typ=application/abcdef cmp=com.foo.bar/.app.FooViewer}
于 2013-12-04T17:04:36.150 に答える
0

これで問題が解決する場合があります。以下のインテント フィルターを追加します。

<activity android:name=".Activity"
          android:screenOrientation="portrait"
          android:label="@string/app_name">
    <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>
    <intent-filter>
       <action android:name="android.intent.action.VIEW"/>
        <action android:name="android.intent.action.EDIT"/>
        <category android:name="android.intent.category.DEFAULT"/>
        <data android:pathPattern="*.snowdragon"/>
        <data android:mimeType="text/snowdragon"/>
    </intent-filter>
</activity>
于 2013-07-24T06:18:31.237 に答える