Почему мой файл не является файлом изображения?Можно выбрать изображение без сохранения как URI?// Android studio - после преобразования URI в «изображение» - PullRequest
0 голосов
/ 04 марта 2019

Ранее я просил некоторую помощь и был направлен на Конвертировать файл: Uri в файл в Android , где я нашел полезный ответ, который устранил мою первоначальную проблему ... с помощью этого мне удалось "преобразовать" мой URIв файл ... просто не тот файл, который мне нужен.

Мне нужен snapFile1, чтобы быть файлом изображения, т.е. .png или .jpg и т. д., но когда он отправляется в Snapchat, возникает ошибкаоткрывая мой мем, он говорит, что это не изображение ...

Я предполагаю, что он отправляет путь к файлу в виде файла, а не изображение?Можно ли как-то отправить изображение, выбранное мной из галереи STRAIGHT, в Snapchat?Итак, я нажимаю кнопку, галерея открыта, я нажимаю изображение, изображение идет прямо в Snapchat, используя приведенный ниже код, без сохранения / установки его в качестве Uri?

photoFile = snapMediaFactory.getSnapPhotoFromFile(snapFile1);
        SnapPhotoContent snapPhotoContent = new SnapPhotoContent(photoFile);
        snapCreativeKitApi.send(snapPhotoContent);

Любая помощь будет принята с благодарностью, спасибозаранее!

Мое выбранное изображение из кода галереи:

        sendButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent pickIntent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
            pickIntent.setType("image/* video/*");
            //pickIntent.putExtra("imageUri", Uri.toString());
            startActivityForResult(pickIntent, MEDIA_RESULT);
        }
    });

Мой код onActivityResult:

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode== MEDIA_RESULT  && resultCode == RESULT_OK)
    {
        //snapFile1 NEEDS to be an image or video file ONLY
        Uri snapFile = data.getData();
        File snapFile1 = new File(getPath(snapFile));

        SnapMediaFactory snapMediaFactory = SnapCreative.getMediaFactory(this);
        SnapPhotoFile photoFile;

        try {
            photoFile = snapMediaFactory.getSnapPhotoFromFile(snapFile1);
        } catch (SnapMediaSizeException e) {
            //error
            return;
        }

        //send picture to snapchat
        SnapPhotoContent snapPhotoContent = new SnapPhotoContent(photoFile);
        snapCreativeKitApi.send(snapPhotoContent);
    }
}

Код для getPath,

    public String getPath(Uri uri)
{
    String[] projection = { MediaStore.Images.Media.DATA };
    Cursor cursor = getContentResolver().query(uri, projection, null, null, null);
    if (cursor == null) return null;
    int column_index =             cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
    cursor.moveToFirst();
    String s=cursor.getString(column_index);
    cursor.close();
    return s;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...