05 «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.» 07

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

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

 

【Unity】パスを取得後の保存とかギャラリー反映とか…先週の続き 

こんにちは。
大坂です。

なんとなく先週の記事の続きです。
はい!ネタがなかったからです!orz

サンプルです。
「StreamingAssets」フォルダの中のファイルを書き出してます。
#if UNITY_ANDROID
string path;
// 保存パスを取得
using(AndroidJavaClass environment = new AndroidJavaClass("android.os.Environment"))
using(AndroidJavaObject exDir =
environment.CallStatic("getExternalStoragePublicDirectory",
environment.GetStatic("DIRECTORY_DCIM"))) {
path = exDir.Call("toString");
}

// StreamingAssetsのファイルを取得
string tmpPath = "jar:file://" + Application.dataPath + "!/assets/test.jpg";
WWW www = new WWW(tmpPath);

while(!www.isDone) {
yield return null;
}

string fileName = path + "test.jpg";
// 書き込み
System.IO.File.WriteAllBytes(file, www.bytes);

// ファイル保存のために1フレーム待つ
yield return new WaitForEndOfFrame();

// メディアスキャン
using(AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
using(AndroidJavaObject activity = unityPlayer.GetStatic("currentActivity"))
using(AndroidJavaObject context = activity.Call("getApplicationContext"))
using(AndroidJavaClass mediaScannerConnection = new AndroidJavaClass("android.media.MediaScannerConnection")) {
mediaScannerConnection.CallStatic("scanFile", context, new string[] { fileName }, new string[] { "image/png" }, null);
}
#endif

サーバにファイル置いて取りたい時なんかはWWWで指定しているのをURLにすればとれますし、
画面キャプチャが良ければ、ファイルの取得と書き込み部分を消して
「Application.CaptureScreenshot("../../../../DCIM/" + test.jpg);」とかってすればできますね。

何かに使えれば幸いです。

では、また来週ノシ
スポンサーサイト

Category: 開発日記(Unity)

tb 0 : cm 0   

コメント

コメントの投稿

Secret

トラックバック

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