Вызов функции выбора файлов из студии android в единицу - PullRequest
0 голосов
/ 13 апреля 2020

Я создал Android Плагин Studio для единства. Код Android Studio java используется для запуска функции выбора файлов на мобильном устройстве Android.

Мой java код:

private TextView txt_pathShow;
    private Button btn_filePicker;
    private Intent myFileIntent;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        btn_filePicker.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                myFileIntent = new Intent(Intent.ACTION_GET_CONTENT);
                myFileIntent.setType("*/*");
                startActivityForResult(myFileIntent, 10);
            }
        });

    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        switch (requestCode) {
            case 10:
                if (resultCode == RESULT_OK) {
                    String path = data.getData().getPath();
                    txt_pathShow.setText(path);
                }
                break;
        }
    }

    public String getPath() {
        return txt_pathShow.toString();
    }

Затем мне нужно вызвать эту функцию в единстве, чтобы выбрать видеофайл для воспроизведения в моих приложениях единства. Я попробовал приведенный ниже код, но он не работает.

public void GetFile()
    {
        if (Application.platform == RuntimePlatform.Android)
        {
            using (var androidPlugin = new AndroidJavaClass("com.example.putragram.MyPlugin"))
            {
                using (var javaUnityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
                {
                    using (var currentActivity = javaUnityPlayer.GetStatic<AndroidJavaObject>("currentActivity"))
                    {
                        //path = androidPlugin.Call<string>("getPath", currentActivity);
                        //path = androidPlugin.Call<string>("onCreate", currentActivity);
                        path = androidPlugin.Call<string>("onActivityResult", currentActivity);
                    }
                }
            }
        }
        UpdateVideo();
    }

    void UpdateVideo()
    {
        UnityWebRequest www = new UnityWebRequest("jar:file:///" + path);
        video.url = www.url;
    }

Надеюсь, кто-нибудь может помочь мне запустить эту функцию. Я потратил столько времени на это. Большое спасибо!

...