Получение фотографии из галереи без приостановки текущей активности - PullRequest
0 голосов
/ 25 апреля 2020

Я пытаюсь сделать именно так: { ссылка }, но без приостановки / перезапуска текущей активности. Как мне это сделать?

Это расширение android для GameMaker.

Я также изменил startActivityForResult() на RunnerActivity.CurrentActivity.startActivityForResult(), иначе оно не работает ( https://forum.yoyogames.com/index.php?threads / android -extension-problem-with-start-intent.15410 / )

Консоль (после открытия галереи перед выбором изображения): https://imgur.com/KnLXhDc

Мой java код прямо сейчас:

package ${YYAndroidPackageName};
import ${YYAndroidPackageName}.R;
import com.yoyogames.runner.RunnerJNILib;

import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.ParcelFileDescriptor;
import android.os.Parcelable;
import android.provider.MediaStore;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;

import java.io.FileDescriptor;
import java.util.ArrayList;
import java.io.File;
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.lang.String;




public class GenericTest extends Activity
{

    // this is the action code we use in our intent,
    // this way we know we're looking at the response from our own action
    private static final int SELECT_SINGLE_PICTURE = 101;

    public static final String IMAGE_TYPE = "image/*";

    private static final int EVENT_OTHER_SOCIAL = 70;



    public double AddTwoNumbers(double arg0, double arg1) /// Testing
    {
        double value = arg0 + arg1;
        Log.i("yoyo", arg0 + " + " + arg1 + " = " + value);

        return value;
    }

    public double Pick() /// What im executing from GameMaker
    {
        Intent intent = new Intent();
        intent.setType(IMAGE_TYPE);
        intent.setAction(Intent.ACTION_GET_CONTENT);
        Log.i("yoyo", "start~~");
        try 
        {
            RunnerActivity.CurrentActivity.startActivityForResult(Intent.createChooser(intent, "Select Picture"), SELECT_SINGLE_PICTURE);
        } catch (Exception e) {
            Log.i("yoyo", "error", e);
        }       

        return 0;
    }

    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (resultCode == RESULT_OK) {
            if (requestCode == SELECT_SINGLE_PICTURE) {
                String path = data.getData().toString();
                Log.i("yoyo", path); // DOESN'T SHOW THIS ON CONSOLE!
                int dsMapIndex = RunnerJNILib.jCreateDsMap(null, null,null);
                RunnerJNILib.DsMapAddString( dsMapIndex, "type", "imagepath" );
                RunnerJNILib.DsMapAddString( dsMapIndex, "selectedImageUri", path);
                RunnerJNILib.CreateAsynEventWithDSMap(dsMapIndex, EVENT_OTHER_SOCIAL);
            }
        }
    }

} // End of class

...