インテントを使用して Android (4.0) でローカル ファイルを開こうとしています。以下は、アクションを実行するコードです。これは、ファイルに特別なスペースがない限り正常に機能します (たとえば、ファイルが /data/data/com.xxxx.yyyy/files/Downloads/Documents/ProductFeature.pptx の場合、問題なく開きますが、ファイルがname is /data/data/com.xxxx.yyyy/files/Downloads/Documents/Product Feature.pptx (name のスペースに注意), then it fails. Uri.fromFile はスペースを正しくエンコードしますが、他のアプリは見えませんそれらを解釈し、開くのに失敗したように見えます。
Intent intent = new Intent();
intent.setAction(android.content.Intent.ACTION_VIEW);
Uri uri = Uri.fromFile(new File( selectedEntry.get(Defs.PATH_KEY)));
System.out.println("openFileWith: File to open: " + uri);
intent.setDataAndType(uri,type);
startActivity(Intent.createChooser(intent, "Open With ..."));
また、あまり助けを借りずに「file://」+エンコードされていないパスを使用しようとしました。
では、この状態をどのように処理しますか?どんな助けでも大歓迎です