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