start开发完成
This commit is contained in:
70
Assets/Script/ AndroidImagePicker.cs
Normal file
70
Assets/Script/ AndroidImagePicker.cs
Normal file
@@ -0,0 +1,70 @@
|
||||
namespace Unity.RenderStreaming
|
||||
{
|
||||
#if UNITY_ANDROID && !UNITY_EDITOR
|
||||
public class AndroidImagePicker : MonoBehaviour
|
||||
{
|
||||
private static AndroidImagePicker _instance;
|
||||
private Action<Texture2D> _callback;
|
||||
private AndroidJavaObject _activity;
|
||||
private bool _waitingForResult;
|
||||
private string _pickedImagePath;
|
||||
|
||||
public static AndroidImagePicker Instance
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_instance == null)
|
||||
{
|
||||
var go = new GameObject(nameof(AndroidImagePicker));
|
||||
DontDestroyOnLoad(go);
|
||||
_instance = go.AddComponent<AndroidImagePicker>();
|
||||
}
|
||||
return _instance;
|
||||
}
|
||||
}
|
||||
|
||||
public void PickImage(Action<Texture2D> onImagePicked)
|
||||
{
|
||||
_callback = onImagePicked;
|
||||
|
||||
using (AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
|
||||
{
|
||||
_activity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
|
||||
}
|
||||
|
||||
_activity.Call("runOnUiThread", new AndroidJavaRunnable(() =>
|
||||
{
|
||||
using (AndroidJavaObject intent = new AndroidJavaObject("android.content.Intent",
|
||||
"android.intent.action.PICK"))
|
||||
{
|
||||
intent.Call<AndroidJavaObject>("setType", "image/*");
|
||||
using (AndroidJavaObject i = intent.Call<AndroidJavaObject>("createChooser",
|
||||
_activity, "选择头像"))
|
||||
{
|
||||
_activity.Call("startActivity", i);
|
||||
}
|
||||
}
|
||||
}));
|
||||
|
||||
_waitingForResult = true;
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (!_waitingForResult) return;
|
||||
|
||||
try
|
||||
{
|
||||
if (_activity == null) return;
|
||||
using (AndroidJavaClass uriClass = new AndroidJavaClass("android.net.Uri"))
|
||||
{
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
// ignored
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
Reference in New Issue
Block a user