如何使用 Unity 刷新 android 图库?
How do I refresh the android Gallery using Unity?
很多人问这个问题,我浏览了 google 搜索结果的前几页并尝试了我找到的所有解决方案 - None 似乎有效。
好像是因为版本不同等情况发生了变化...
我已经从 Unity Asset store 购买了一个资产,但资产本身也没有这样做。 (我已经联系了资产创建者,但还没有收到任何回复)。
所以...目前刷新图库的方法是什么?在最新版本的 Android 中有什么作用?
好吧,经过更多的摸索,我找到了解决方案。
using (AndroidJavaClass jcUnityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
using (AndroidJavaObject joActivity = jcUnityPlayer.GetStatic<AndroidJavaObject>("currentActivity"))
using (AndroidJavaObject joContext = joActivity.Call<AndroidJavaObject>("getApplicationContext"))
using (AndroidJavaClass jcMediaScannerConnection = new AndroidJavaClass("android.media.MediaScannerConnection"))
using (AndroidJavaClass jcEnvironment = new AndroidJavaClass("android.os.Environment"))
using (AndroidJavaObject joExDir = jcEnvironment.CallStatic<AndroidJavaObject>("getExternalStorageDirectory"))
{
jcMediaScannerConnection.CallStatic("scanFile", joContext, new string[] { Path }, null, null);
}
路径应该等于你的图片的绝对路径。根据需要将更多路径插入到字符串 [] 中。已在 Android 6.0.1 上测试过,效果很好!
很多人问这个问题,我浏览了 google 搜索结果的前几页并尝试了我找到的所有解决方案 - None 似乎有效。
好像是因为版本不同等情况发生了变化...
我已经从 Unity Asset store 购买了一个资产,但资产本身也没有这样做。 (我已经联系了资产创建者,但还没有收到任何回复)。
所以...目前刷新图库的方法是什么?在最新版本的 Android 中有什么作用?
好吧,经过更多的摸索,我找到了解决方案。
using (AndroidJavaClass jcUnityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
using (AndroidJavaObject joActivity = jcUnityPlayer.GetStatic<AndroidJavaObject>("currentActivity"))
using (AndroidJavaObject joContext = joActivity.Call<AndroidJavaObject>("getApplicationContext"))
using (AndroidJavaClass jcMediaScannerConnection = new AndroidJavaClass("android.media.MediaScannerConnection"))
using (AndroidJavaClass jcEnvironment = new AndroidJavaClass("android.os.Environment"))
using (AndroidJavaObject joExDir = jcEnvironment.CallStatic<AndroidJavaObject>("getExternalStorageDirectory"))
{
jcMediaScannerConnection.CallStatic("scanFile", joContext, new string[] { Path }, null, null);
}
路径应该等于你的图片的绝对路径。根据需要将更多路径插入到字符串 [] 中。已在 Android 6.0.1 上测试过,效果很好!