浜松のWEBシステム開発・スマートフォンアプリ開発・RTK-GNSS関連の開発はお任せください
株式会社シーポイントラボ
TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:静岡県浜松市中区富塚町1933-1 佐鳴湖パークタウンサウス2F

【android】ファイルのディレクトリを指定するときの注意点

androidアプリでカメラ機能の実装をするときに、bitmap加工やexifの修正の

ために撮った写真のディレクトリを取ってくる必要があるのですが

今まではEnvironment.getExternalStorageDirectoryで指定することに

よって簡単に写真のディレクトリを見つけることができたのですが、

api29からはユーザーのプライバシーを外部から悪用されないように

と厳しく取り締まった結果このメソッドが非推奨になり

開発者さんたちは泣く泣く変更を余儀なくされました。

 

ですが同じことができなくなったという訳ではなく、代わりに

getExternalFilesDirを使うことで今までと同じように

ディレクトリを指定することができます。

 

他にMediaStoreを使ってファイルを作る方法もあるのですが、

getExternalFilesDirのほうが短いコーディングで済ませられるので

こっちのほうが好みですね。

 

改めてapi29以降で共有ファイルを取得するには以下のように書く

ことで取得できるようになります。

</pre>
<pre>File imageStorageDir = new File(
        getExternalFilesDir(Environment.DIRECTORY_DCIM),
        "child"
);</pre>
<pre>

※DCIMとはandroidが持っている外部ストレージの一部なのですが、sdと
違い切り離すことができません。

なので何もマウントしていない状態で画像を保存する場合は

基本このDCIMに保存されます。

 

 

 

  • この記事いいね! (0)