2015-11-26 4 views
1

У меня есть этот метод, который разделяет текстовый файл или изображение в зависимости от того, какой EXTRA_STREAM я использую. Я theese два я могу выбрать изAndroid Share Intent EXTRA_STREAM

i.putExtra(Intent.EXTRA_STREAM, uri); 
i.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file)); 

Как я могу поделиться как в то же самое время, когда я называю startActivity?

Вот мой код

public void shareTextAndPic(){ 

    long x = getBundle(); 

    Product product = db.findProductbyId(getBundle()); 


    Bitmap icon = BitmapFactory.decodeByteArray(db.fetchSingle(x), 0, 
      db.fetchSingle(x).length); 

    Intent share = new Intent(Intent.ACTION_SEND); 
    share.setType("image/jpeg"); 

    ContentValues values = new ContentValues(); 
    values.put(Images.Media.TITLE, "title"); 
    values.put(Images.Media.MIME_TYPE, "image/jpeg"); 
    Uri uri = getContentResolver().insert(Media.EXTERNAL_CONTENT_URI, 
      values); 


    OutputStream outstream; 
    try { 
     outstream = getContentResolver().openOutputStream(uri); 
     icon.compress(Bitmap.CompressFormat.JPEG, 100, outstream); 
     outstream.close(); 
    } catch (Exception e) { 
     System.err.println(e.toString()); 
    } 

    //share.putExtra(Intent.EXTRA_STREAM, uri); 
    //startActivity(Intent.createChooser(share, "Share Image")); 


    File file = new File(way + "/momsfil.txt"); 
    Intent i = new Intent(Intent.ACTION_SEND); 
    i.setType("text/plain"); 
    i.setType("image/jpeg"); 
    i.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file)); 
    i.putExtra(Intent.EXTRA_EMAIL, new String[] { "[email protected]" }); 
    i.putExtra(Intent.EXTRA_SUBJECT, "subject of email"); 
    i.putExtra(Intent.EXTRA_TEXT, "body of email"); 


    //i.putExtra(Intent.EXTRA_STREAM, uri); 

    try { 
     startActivity(Intent.createChooser(i, "Share")); 
    } catch (android.content.ActivityNotFoundException e) { 
     Toast.makeText(TableRow.this, 
       "There are no email clients installed.", 
       Toast.LENGTH_SHORT).show(); 
    } 
} 
+0

Ok, спасибо за головы. Мой вопрос: как я могу делиться обоими одновременно, когда я вызываю startActivity? –

+0

Мое основное предназначение для намерения - только для отправки намерения с помощью электронной почты. –

ответ

0

Проверить this, и this из

содержание Uri все, что вам нужно. Нет необходимости использовать файл Uri.

В будущем другие приложения могут захотеть избежать READ_EXTERNAL_STORAGE, который необходим для чтения файлов Uri. Поэтому вы можете избежать их.


Если вы хотите обмениваться файлами с другим типом, используйте ACTION_SEND_MULTIPLE

intent.setAction(Intent.ACTION_SEND_MULTIPLE); 
intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, yourUriArrayList); 
intent.setType("*/*"); 
+0

Это то, что я искал. –

+0

@ Waffles.Inc Нет проблем. Я как-то неправильно понял вопрос. – FlanschiFox

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