私の質問は、Androidのリソース(res /フォルダーのサブディレクトリ)の絶対パスを取得することは可能ですか?
このグーグルの質問に対する私の答えのほとんどは、ファイル記述子を取得することを示唆しており、これは不可能であることを意味しています。
それは...ですか?
編集:私がこれをしたいのは、メディアへのパスを受け入れて再生するクラスを書いているからです。リソースの絶対パスを渡すことができれば、テストははるかに簡単になります。
「絶対」パスの代わりにURIパスを使用します。 この投稿 を参照してください
Uri path = Uri.parse("Android.resource://com.segf4ult.test/" + R.drawable.icon);
Uri otherPath = Uri.parse("Android.resource://com.segf4ult.test/drawable/icon");
または、openRawResource(R.id)を使用してinputStreamを開き、FileInputStream(読み取り専用)を使用するのと同じ方法で使用します。
ありえない。表示されるリソースフォルダーはapkにコンパイルされ、そのままでは保存されない場合があります。 (たとえば、これらのレイアウトxmlファイルは、一度コンパイルされるとxmlファイルではなくなります)
状況に応じた2つの可能な解決策/回避策:
一般的に、[〜#〜] no [〜#〜]。ここでは数回繰り返されたため、リソースを介してアクセスする必要があります。
とはいえ、それを回避する方法はいくつかあります。
/data/data/yourapp/
または/tmp/
いずれにせよ、ほとんどのデバイスで動作しない可能性が最も高いソリューションに対してテストします。開発者ガイドの指示に従うことをお勧めします。 http://developer.Android.com/guide/topics/data/data-storage.html