package com.unity.filepicker; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.util.Log; import com.unity3d.player.UnityPlayerActivity; /** * 扩展 UnityPlayerActivity 以监听 Activity 结果 */ public class UnityActivityCallback extends UnityPlayerActivity { private static final String TAG = "[FILE-PICKER]"; private static final int REQUEST_CODE_PICK_FILE = 1001; private static FilePickerResultCallback sCallback; public interface FilePickerResultCallback { void onActivityResult(int requestCode, int resultCode, Intent data); } public static void setCallback(FilePickerResultCallback callback) { sCallback = callback; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.d(TAG, "[JAVA] UnityActivityCallback.onCreate"); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); Log.d(TAG, "[JAVA] UnityActivityCallback.onActivityResult: requestCode=" + requestCode + ", resultCode=" + resultCode); if (requestCode == REQUEST_CODE_PICK_FILE && sCallback != null) { Log.d(TAG, "[JAVA] 调用FilePicker回调"); sCallback.onActivityResult(requestCode, resultCode, data); sCallback = null; // 清除回调避免内存泄漏 } } }