0

Context.getDir()Intent.ACTION_VIEWを介してアクセスできるアプリの内部メモリに保存されているファイルを、タイプ"text/plain"とファイル URI を引数として起動して、利用可能な外部テキスト エディタで編集できるようにしたいと考えています。外部エディターは sdcard 上のファイルをうまく処理しますが、Context.getDir()の下のファイルにアクセスすることはできません。

getDir()asを呼び出してContext.getDir("data", Context.MODE_WORLD_WRITEABLE)いますが、インテントを介して URI を外部エディターに渡すと、まだアクセス拒否エラーが発生します。

ドキュメントによると、他のアプリへのアクセスを有効にしてファイルを変更するには、に渡すだけで十分MODE_WORLD_WRITEABLEgetDir()はずですが、そうではないようです。または、何か不足していますか?

問題は/data/data/app.package/、SD カードにファイルのコピーを作成したり、root のスーパーパワーに頼ったりせずに、他のアプリが特定のファイルを変更できるようにする方法です。

4

1 に答える 1

1

それを実現するために、独自の API を作成できます。

たとえば、独自のライブラリを作成し、それが内部ファイルにアクセスし、他のアプリケーションがそのライブラリにアクセスするとします。放送受信機や、この目的に適していると思われるその他の手段を使用することもできます。

または、そのためのコンテンツ プロバイダーを設計することもできます。

別の方法として、これらのコマンドContext.getExternalCacheDir() またはを使用してファイルを作成Context.getExternalFilesDir(type)すると、直接パスを使用してアクセスできる SD カードにファイルが作成されます。

于 2013-03-28T21:25:07.797 に答える