2012-04-26 2 views
3

Я ищу решение довольно долгое время, и я все больше расстраиваюсь.Попытка предоставить изображение для приложений, вызывающих намерение GET_CONTET

Я хочу, чтобы мое приложение могло предоставлять контент для других приложений. Например: при использовании приложения GoogleMail вы можете добавить вложение. Откроется диалоговое окно с указанием всех приложений, которые могут предоставить файл для вложения. Мое приложение в диалоговом окне уже, потому что я определил деятельность с намерением фильтра, как это:

<intent-filter > 
      <action android:name="android.intent.action.GET_CONTENT" /> 
      <action android:name="android.intent.action.PICK" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <category android:name="android.intent.category.OPENABLE" /> 
      <data android:mimeType="image/*" /> 
     </intent-filter> 

Так что, когда вы выбираете мое приложение, он начинает свою деятельность. Эта активность позволяет пользователю выбирать фотографию и записывать ее на SD-карту. Все идет нормально. Но как я могу вернуть его правильно? Поскольку приложение в GoogleMail никогда не создано. Я возвращаю это так:

if(file!=null) 
{ 
    Intent resultIntent=new Intent(); 
    resultIntent.setType("image/jpg"); 

    Uri uri=Uri.fromFile(file); 

    //uri=Uri.parse(uri.toString().replace("file", "content")); 
    resultIntent.putExtra(Intent.EXTRA_STREAM, uri); 
    resultIntent.putExtra(Intent.EXTRA_UID, uri); 
    resultIntent.setData(uri); 
    setResult(RESULT_OK, resultIntent); 
    finish(); 
} 

я бы так себе так рад, если кто-нибудь может мне помочь. Я считаю, что это просто, что я делаю неправильно, но я не могу найти ничего, что помогло бы мне. :(

С наилучшими пожеланиями

+0

вы найти решение, которое работает? Я застрял в той же точке. 'resultIntent.putExtra (Intent.EXTRA_STREAM, uri); resultIntent.putExtra (Intent.EXTRA_UID, uri);' Не работает для меня. Но даже если я см. вложение в Gmail, он не отправит его. – philipp

ответ

0

Вы, вероятно, нужно реализовать провайдера потока. Там действительно нет хороший гид там, но this ближайший я смог найти.