0

現在、Androidのアプリを開発中です。アプリでは、.vtkファイルを参照して選択できます。インテントを使用して別のアプリを起動して.vtkファイルを開く

これらの.vtkファイルを開く「KiwiViewer」というアプリもインストールしました。私が手動でタブレットを通過し、ファイル管理アプリケーションを使って.vtkファイルをクリックすると、KiwiViewerはこれらの.vtkファイルを問題なくオープンします。

私は同じことが私のアプリで発生したいと思います。ユーザーの選択した.vtkファイルをKiwiViewerで開くことを希望します。私はKiwiViewerのパッケージ( "com.kitware.KiwiViewer")を知っており、私はその意図を持ってアプリを開くことができます。しかし、私はアプリに渡された.vtkファイルを開くことができません。

Intent i = new Intent(this.getPackageManager().getLaunchIntentForPackage("com.kitware.KiwiViewer")); 
i.setData(Uri.parse(getIntent().getExtras().getString("ImageURI"))); 
startActivity(i); 

私がチェックして、データが送信されては有効である(それがnullでなく、それは間違いなく右のファイルです。

私はまた、次のことを試してみましたが、それは動作しません。次のいずれか

Intent i = new Intent(); 
i.setData(Uri.parse(getIntent().getExtras().getString("ImageURI"))); 
i.setPackage("com.kitware.KiwiViewer"); 
startActivity(i); 

はしかし、私は「活動が見つかりません例外」を取得

を、それは私がそれを提供するデータを開くように私はKiwiViewerを起動するにはどうすればよい

EDIT: KiwiViewerに提供されているURIパスを見ると、/document/primary:ExperimentData/MHDImage.vtkのようです。 KiwiViewerは、これは存在しないと言います。実際には、パスは/sdcard/ExperimentData/MHDImage.vtkです。両者が異なる理由は何ですか?

答えて

0

KiwiViewerのソースコードを見て、データを開くために、コンテンツではなくファイルのURIスキームが必要であることが判明しました。さらに、私は手動でサブディレクトリ( "ExperimentData/MHDImage.vtk")を抽出し、それを "/ sdcard /"に連結してKiwiViewerにデータを開くようにさせなければなりませんでした。私はこのハードコーディングが嫌になっていることを知っていますが、 "/ sdcard /"(Environment.getExternalStorageDirectory()。getPath())の代わりを使用すると、正しいディレクトリが得られません。

関連する問題