ImagePicker.cs 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. public class ImagePicker : MonoBehaviour
  5. {
  6. AndroidJavaObject picker;
  7. private void Start()
  8. {
  9. //AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
  10. //AndroidJavaObject currentActivity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
  11. //picker = new AndroidJavaObject("com.example.mylibrary.ImagePicker", currentActivity);
  12. //picker.Call("PickImageTest");
  13. //AndroidJavaObject unityCallAndorid = new AndroidJavaObject("com.example.mylibrary.UnityCallAndroid", currentActivity);
  14. //string str= unityCallAndorid.CallStatic<string>("DebugLogs");
  15. //Debug.Log(str);
  16. }
  17. public void PickImage()
  18. {
  19. AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
  20. AndroidJavaObject currentActivity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
  21. picker = new AndroidJavaObject("com.example.mylibrary.ImagePicker", currentActivity);
  22. picker.Call("PickImage", "image/*");
  23. // PickImageFromGallery();
  24. }
  25. public void PickVideo()
  26. {
  27. AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
  28. AndroidJavaObject currentActivity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
  29. picker = new AndroidJavaObject("com.example.mylibrary.ImagePicker", currentActivity);
  30. picker.Call("PickImage", "video/*");
  31. }
  32. // 在Android中选择图片后,Unity中调用该方法接收选择的图片路径
  33. public void ReceiveImagePath(string imagePath)
  34. {
  35. // 在这里处理选择的图片路径
  36. Debug.Log("Selected image path: " + imagePath);
  37. }
  38. void PickImageFromGallery()
  39. {
  40. using (AndroidJavaClass androidClass = new AndroidJavaClass("com.example.mylibrary.ImagePicker"))
  41. {
  42. using (AndroidJavaObject androidObject = androidClass.CallStatic<AndroidJavaObject>("getInstance"))
  43. {
  44. // 创建ImagePickerCallback实例
  45. ImagePickerCallback callback = new ImagePickerCallback();
  46. // 调用Android的选择相册图片的方法,并传递ImagePickerCallback实例
  47. androidObject.Call("pickImageFromGallery", callback);
  48. }
  49. }
  50. }
  51. }