デフォルトのリーダーでファイルを開こうとする次のコードがあります。
Intent intent = new Intent();
intent.setAction(android.content.Intent.ACTION_VIEW);
intent.addFlag(Intent.FLAG_GRANT_READ_URI_PERMISSION);
// type can be "application/msword" or "application/pdf"
intent.setDataAndType(Uri.fromFile(file), type);
activity.startActivity(intent);
ファイルは、アプリケーション フォルダー内の Android デバイスにあります。
/data/data/air.com.foo.foo/com.foo.foo/Local Store/folder1/file.ppt
問題は、起動されたアクティビティがファイルを見つけられないことです。呼び出し元コードでファイルの存在を確認したので、問題はありません。
さらに、アプリケーションフォルダーからアプリケーションで共有されているフォルダー(SDカード上)にファイルをコピーすると、アクティビティがファイルを見つけます。
追加したので失敗する理由がわかりません:
intent.addFlag(Intent.FLAG_GRANT_READ_URI_PERMISSION);
問題は、ファイルを共有フォルダーにコピーすることは、最初のアプリケーションフォルダー内にとどめておきたいため、満足のいく解決策ではないことです。