これは以前に一般的に論じられましたが、私は今や特別なケースを持っています。私のアプリケーションは特定のアプリケーション固有のファイルタイプ(.gedstar)を開きます。これは実際にはSQLiteデータベースであり、一般的にはpathPattern修飾子を持つapplication/octet-streamとして処理されます。これは私の意図の定義です:ファイルタイプのAndroidのインテントが失敗する
(これはワイルドカードのmimeTypeを使用した場合と使用しなかった場合のBTW)です。今まで私はDropboxを使ってユーザーのPCからAndroidにファイルを転送してアプリを起動することを推奨してきましたが、これまではうまくいきました。その後、Dropbox V2.0アプリのリリースにより、このファイルタイプのアプリを持たないというトーストメッセージが発生しました。 Logcatでそれをトラップ
が、これはそれが必要のように私には見えた、動作しない意図である:
I/ActivityManager(97):テント{行為= android.intent.action:活動を開始します。 VIEW dat = file:///mnt/sdcard/Android/data/com.dropbox.android/files/scratch/GedStar%20Pro/Gordon.gedstar typ =アプリケーション/オクテットストリームflg = 0x10000003(補足あり)}
奇妙なことは、Dropboxのブラウザインタフェースを使用してこの同じファイルをダウンロードしてから、ブラウザのダウンロードリストに移動して正常に起動できることです。ここで成功したインテントは次のとおりです。
I/ActivityManager(97):開始アクティビティ:インテント{act = android.intent.action.VIEW dat = file:///mnt/sdcard/download/Gordon.gedstar typ = application/octet-stream flg = 0x10000000 cmp = com.ghcssoftware.gedstar/.GedStar}
「flg」と「cmp =一致するインテント。誰もがこれをより完全に説明できますか?
もう1つの違いは '%20'です。スペースがない方法でDropBoxでファイルをダウンロードしてみてください。私はDropBoxの外部ストレージファイルの構造を調べていないが、私は "GedStar Pro"がフォルダであると推測している。 – CommonsWare
私はすでにこの問題を解消していましたが、pathPatternの制限であることが判明しました。下の私の答えを見てください。 – gordonwd