killapp/Assets/Plugins/Android/UnityActivityCallback.java
2026-03-30 16:25:00 +08:00

45 lines
1.5 KiB
Java

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; // 清除回调避免内存泄漏
}
}
}