0

私は自分のアプリケーションを介してファイルをダウンロードすると、自分のアプリケーション データ スペース内にダウンロードされるアプリケーションを作成しています。ダウンロードしたファイルがSDカードまたは内部メモリに保存されている場合、ユーザーはアクセスできるため、基本的にこれを行っています。だから私の質問は、ユーザーがサードパーティのアプリケーションでファイルをタップしたときにファイルを開きたいということです。ファイルがダウンロードされると、開くかどうかが表示されます。[開く] をタップすると、他のサードパーティ アプリケーションで開く必要があります。たとえば、abc.doc をダウンロードすると、さまざまなリーダーから開くように求められます。

これは可能ですか?そうでない場合、どのソリューションを実装できますか?これにはデバイスをルート化する必要がありますか..?

4

1 に答える 1

0

ダウンロードしたファイルがSDカードまたは内部メモリに保存されている場合、ユーザーはアクセスできるため、基本的にこれを行っています。

まず、「内部メモリ」は「アプリケーション データ スペース」です。「アプリケーション データ スペース」とは、RAM ではなくファイル ストレージを指すものとします。Android で書き込みできる場所は、内部ストレージと外部ストレージの 2 つだけです。

2 つ目は、デバイスをルート化するなどして、内部ストレージにあるファイルにアクセスしたいユーザーがアクセスできることです。

だから私の質問は、ユーザーがサードパーティのアプリケーションでファイルをタップしたときにファイルを開きたいということです。ファイルがダウンロードされると、開くかどうかが表示されます。[開く] をタップすると、他のサードパーティ アプリケーションで開く必要があります。たとえば、abc.doc をダウンロードすると、さまざまなリーダーから開くように求められます。

MODE_WORLD_READABLEを使用してファイルを作成するときに、ファイルを作成することを選択できますopenFileOutput()。これにより、一部のサードパーティ アプリケーションがファイルにアクセスできるようになる場合があります。または、ContentProviderこのファイルを提供するために を実装することもできます。これらのいずれも、ユーザーがファイルにアクセスできるようにします (たとえば、これらのビューアー アプリの「共有」オプションを介して)。これは、元の目的に反します。

アプリ以外のユーザーがファイルにアクセスできないようにする唯一の方法は、アプリがファイルを表示 (または操作) する場合です。そして、上で述べたように、ルート化されたデバイスの所有者は、ファイルにアクセスすることを選択できます。

于 2012-08-14T11:46:58.303 に答える