2012-03-19 4 views
0

現在、インターネットからファイルをダウンロードしてSDカードに保存してから、そのファイルを使用できます。しかし、これにより、(独自のデータを持つ)ファイルを見ることができるようになります。私は生のファイルや資産のフォルダのような場所からファイルを使用することを好むでしょう。 Androidはデフォルトのアプリケーションでファイルを開き、すべてが良いですが、私は、ダウンロードコードをスキップしますが、ファイルを使用するために私のコードは、この生ファイルまたは資産フォルダにあるファイルを使用する

File myFile = new File (android.os.Environment.getExternalStorageDirectory() + "/folder/filename.xml"); 
    Intent myIntent = new Intent(Intent.ACTION_VIEW); 
    myIntent.setData(Uri.fromFile(myFile)); 

です。

私は

Uri.parse("android.resource://com.projectname.testing/raw/filename"); 

InputStream ins = getResources().openRawResource(R.raw.filename); 

のようなコードを使用して周りを公転している同様のQ/Aのを発見したが、私は戻って "へのこれら二つのいずれかを取得する方法を考え出すことはできません私の.setDataコードで使用される "ファイル"形式

私は単にファイルとしてファイルにアクセスすることで問題を解決したいと思います。しかし、外部アプリケーションで使用されているので、私はmode_world_readableでファイルの一時的なコピーを作成し、アプリケーションが終了した後にファイルを削除する必要があるかもしれません。特に、上記のコードはSDカードに保存されたファイルで動作するので、これは余分な作業が多いようです。

誰にもアイデアはありますか? ありがとう

答えて

0

私はrawファイルやassetsフォルダのような場所からファイルを使用したいと考えています。

これらも「見る」ことができます。

が、私はFileをとらない私の.setDataコード

setData()で使用するために戻って「ファイル」形式にこれら二つのいずれかを取得する方法を考え出すことはできません。それにはUriが必要です。 Uri.parse()を使用して、他のタイプのUri値を解析します。すでに上のコードがあります。

しかし、外部アプリケーションで使用されているため、mode_world_readableを使用してファイルの一時コピーを作成し、アプリケーションが終了した後でファイルを削除する必要があります。

これは間違いなく世界中で読めるようにする必要があります。また、すべてのアプリがすべてのスキームをサポートするわけではないので、file://またはhttp://をサポートするアプリはandroid.resource://をサポートしていない可能性があります。

+0

返信いただきありがとうございます。 rawフォルダやassetsフォルダのファイルをどのように見られるかについて詳しく説明できますか?私は彼らがコード化されていると思った。これは、ハッキングを必要とする.apkに詰め込まれているからだ。誰かが私の個人的なデータを持っていれば、違法な活動をするだろう。 Uri.parseオプションは動作しません。これは、ファイルを渡すときにのみ機能します。 – lifeIsGood

+0

@lifeIsGood: "生のフォルダや資産フォルダ内のファイルをどのように見ることができますか? - これらは他のアプリにとっては世界共通です。 – CommonsWare

関連する問題