Unity + Android-选择保存图像的路径

时间:2019-07-31 09:55:16

标签: android unity3d path save

我希望能够将图像保存到内部存储器/图像/相机中。下面的代码使我可以保存到存储/图像/图片/ 有趣的是,当我从我的应用程序查看目录时,它显示出它是1970年1月1日创建的。感谢您的帮助!

我尝试将“ android.provider.MediaStore $ Images $ Media”更改为“ android.provider.MediaStore $ Images $ Camera”,但显然没有帮助。

private const string MediaStoreImagesMediaClass = "android.provider.MediaStore$Images$Media";

 public static IEnumerator SavePhoto(){
        yield return new WaitForEndOfFrame();

        Texture2D texture = new Texture2D(Screen.width, Screen.height, TextureFormat.RGB24, false);
        texture.ReadPixels(new Rect(0, 0, Screen.width, Screen.height), 0, 0, false);
        texture.Apply();

        SaveImageToGallery(texture, "testPhoto", "Saving photo to android");
    }

    public static string SaveImageToGallery(Texture2D texture2D, string title, string description)
          {
              using (var mediaClass = new AndroidJavaClass(MediaStoreImagesMediaClass))
              {
                  using (var cr = Activity.Call<AndroidJavaObject>("getContentResolver"))
                  {
                      var image = Texture2DToAndroidBitmap(texture2D);
                      var imageUrl = mediaClass.CallStatic<string>("insertImage", cr, image, title, description);
                      return imageUrl;
                  }
              }
          }

    public static AndroidJavaObject Texture2DToAndroidBitmap(Texture2D texture2D)
          {
              byte[] encoded = texture2D.EncodeToPNG();
              using (var bf = new AndroidJavaClass("android.graphics.BitmapFactory"))
              {
                  return bf.CallStatic<AndroidJavaObject>("decodeByteArray", encoded, 0, encoded.Length);
              }
    }

0 个答案:

没有答案