07 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.» 09

ハルシオンシステムの気ままBlog

株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

 

【Unity】ネイティブなしでAndroidのSDカードのパスを機種依存しないで取得 

こんにちは。
大坂です。

もう11月も後半に差し掛かりましたね…。
あっという間に年末になりそうですorz

さて今週も小ネタです。
まぁ使えるか使えないかは別としてタイトルの通りです。
ネイティブ使ってますけど、iOSでカメラロールに絵を置きたい時なんかはこっちの記事に書いてますので、ご参考にどうぞ。

早速コードと結果を。すごく短いですけど。
#if UNITY_ANDROID
using(AndroidJavaClass environment = new AndroidJavaClass("android.os.Environment"))
using(AndroidJavaObject exDir = environment.CallStatic("getExternalStorageDirectory")) {
Debug.Log(joExDir.Call("toString"));
}
#endif
Debugで出るログはXperiaZ4の環境で「/storage/emulated/0」がでてきますね。

ついでにあんまり変わりませんが、「DCIM」フォルダを直接取りたい時はこんな感じ。
#if UNITY_ANDROID
using(AndroidJavaClass environment = new AndroidJavaClass("android.os.Environment"))
using(AndroidJavaObject exDir =
environment .CallStatic("getExternalStoragePublicDirectory",
environment .GetStatic("DIRECTORY_DCIM"))) {
Debug.Log(exDir.Call("toString"));
}
#endif
結果は「/storage/emulated/0/DCIM」ですね。
何かアクセスしたくてパスがほしい時はこんな感じで取れますよってことで!

あ、読み書きしたい時は「AndroidManifest.xml」に以下のパーミッションが必要ですかね?
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

では今週もこれでノシ
スポンサーサイト

Category: 開発日記(Unity)

tb 0 : cm 0   

コメント

コメントの投稿

Secret

トラックバック

トラックバックURL
→http://halcyonsystemblog.blog.fc2.com/tb.php/258-a139abe6
この記事にトラックバックする(FC2ブログユーザー)