2016-06-03 5 views
4

Я пытаюсь предоставить изображение из моей папки. Он работал до этого, но теперь, по какой-то причине, когда я пытаюсь поделиться, я выберу человека, чтобы поделиться им, и он даст мне сообщение, в котором говорится: «формат файла не поддерживается». По какой-то причине я не могу поделиться им с Whatsapp, но я могу поделиться им с другим приложением вроде snapchat. Поэтому я знаю, что получается правильный образ.Размер файла для Android Share Intent не поддерживается

Вот мой код обмена:

Uri imageUri; 
imageUri = Uri.parse("android.resource://" + getPackageName() + "/drawable/" + "image" + String.valueOf(mViewPager.getCurrentItem() + 1)); 
//imageUri = Uri.parse("android.resource://" + getPackageName() + R.drawable.image1); 
Log.d("Sharing", "android.resource://" + getPackageName() + "/drawable/" + "image" + String.valueOf(mViewPager.getCurrentItem() + 1)); 
Intent sharingIntent = new Intent(Intent.ACTION_SEND); 
//sharingIntent.putExtra(Intent.EXTRA_TEXT, "Ha Ha! Check out this picure I got with todays date! Download the app: http://www.google.com"); 
sharingIntent.setType("image/jpg"); 
sharingIntent.putExtra(Intent.EXTRA_STREAM, imageUri); 
sharingIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); 
startActivity(Intent.createChooser(sharingIntent, "Share via")); 

Вот ошибка я получил из бревен, но я не с помощью ArrayList поделиться.

W/Bundle: Key android.intent.extra.STREAM expected ArrayList but value was a android.net.Uri$StringUri. The default value <null> was returned. 

А что Log.d печатает:

D/Sharing: android.resource://com.trommelen.okke.scheurkalender/drawable/image155 
+0

Пожалуйста, поделитесь тем, что напечатал этот журнал – Neil

+0

@Neil Добавлено журнал –

+0

Спасибо, но я на самом деле имел в виду эту строку. Log.d («Общий доступ», «android.resource: //» + getPackageName() + "/ drawable /" + "image" + String.valueOf (mViewPager.getCurrentItem() + 1)); – Neil

ответ

1

Я решил эту проблему путем добавления растрового изображения и добавить разрешение android.permission.WRITE_EXTERNAL_STORAGE к Manifest

Bitmap imgBitmap=BitmapFactory.decodeResources(getResources(),R.drawable.image1); 
String imgBitmapPath=Images.Media.insertImage(getContentResolver(),imgBitmap,"title",null); 
Uri imgBitmapUri=Uri.parse(imgBitmapPath); 

затем добавить imgBitmapUri как дополнительный поток.

+0

Возможно, вы захотите сделать этот ответ более читаемым (код выглядит довольно плохо в этой форме). –

+0

Скомпилирует? Я не разработчик Android, но 'getContetResolver' выглядит неправильно. Также как 'androi.permission'. – Tunaki

+0

Да, я не видел этих ошибок, я только что их исправил. – m33th

Смежные вопросы