2015-01-12 2 views
0

У меня есть функция, совместно использующая скриншот, который я только что сохранил на столе, в то время как файл определенно существует, и активность совместного доступа загружается правильно, изображение никогда не включается, почему это так?Совместное использование изображения не работает

private File lastScreenShot = null; 

public void onShare(float top, float left, float width, float height){ 
    if(lastScreenShot == null){ 
     saveScreenShot(top, left, width, height); 
    } 
    if (!lastScreenShot.exists()) { 
     return; 
    } 
    Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND); 
    sharingIntent.setType("image/jpeg"); 
    sharingIntent.putExtra(Intent.EXTRA_STREAM, lastScreenShot); 
    sharingIntent.putExtra(Intent.EXTRA_TEXT, "Check out what I created!"); 
    startActivity(Intent.createChooser(sharingIntent, "Share Your Pretty Creation!")); 
} 

ответ

1

Это потому, что контент-резольвер не знает о вашем файле, потому что вы только что создали его.

Вставьте его в базу данных и отправить его как это:

ContentValues values = new ContentValues(2); 
values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpg"); 
values.put(MediaStore.Images.Media.DATA, lastScreenShot.getAbsolutePath()); 
Uri uri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); 

Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND); 
sharingIntent.setType("image/jpg"); 
sharingIntent.putExtra(Intent.EXTRA_STREAM, uri); // Pass in a Uri not a File 
sharingIntent.putExtra(Intent.EXTRA_TEXT, "Check out what I created!"); 
startActivity(Intent.createChooser(sharingIntent, "Share Your Pretty Creation!")); 

Кроме того, имейте в виду startActivity может бросить android.content.ActivityNotFoundException в этом случае.

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