Ранее я просил некоторую помощь и был направлен на Конвертировать файл: 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;
}