2013-02-18 2 views
6

Пример: когда вы нажимаете кнопку для загрузки изображения, вы получаете диалоговое окно для выбора файла. Затем вы можете выбрать приложение, которое вы хотите выбрать. Как я могу сделать свое приложение в этом диалоговом окне?Как активировать активность в диалоговом окне «Выбрать файл»?

+0

Вы можете добавить свой код для создания этого диалогового окна выбора файла? – Shoshi

+0

@Shoshi Я не создал его. Я просто нажал кнопку загрузки на веб-странице. –

+1

Вам необходимо объявить соответствующий [IntentFilters] (https://developer.android.com/reference/android/content/IntentFilter.html) для вашей активности в вашем манифесте, пожалуйста, прочитайте: [Выбор файла Android] (http://stackoverflow.com/q/7856959/1267661) – Sam

ответ

1

Добавьте следующие фильтры намерений к вашей деятельности, где вы хотите собирание иметь место:

 <intent-filter > 
      <action android:name="android.intent.action.PICK" /> 

      <category android:name="android.intent.category.DEFAULT" /> 

      <data android:scheme="file" /> 
     </intent-filter> 
     <intent-filter > 
      <action android:name="android.intent.action.GET_CONTENT" /> 

      <category android:name="android.intent.category.OPENABLE" /> 
      <category android:name="android.intent.category.DEFAULT" /> 

      <data android:mimeType="*/*" /> 
     </intent-filter> 

Первая обрабатывает действия Пики, а вторые один получить содержание.

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

+0

Я думаю, что он должен немного ограничить mimeType. В моем приложении, когда я вставлял */*, он начал появляться повсюду. – DigCamara

+0

@DigCamara Текущий тип mime в основном говорит: «Мое приложение может помочь вам выбрать PDF-файлы, изображения, видео, текстовые файлы или вообще что-нибудь в наличии». Он может изменить его на любой конкретный тип файла, который он хочет, если он поддерживает только один тип файла. –

+0

- Мы в основном согласны. Я просто подумал, что нужно явно выписать его, чтобы он не попал в эту ловушку. – DigCamara

2

Вам необходимо добавить фильтр намерений в файл манифеста в активном действии, которое вы хотите обработать. Например: У меня есть Activity, который обрабатывает импорт изображений, вот что я написал.

activity android:name="com.ImportTheme"> 

    <intent-filter> 
      <action android:name="android.intent.action.VIEW" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
     <category android:name="android.intent.category.BROWSABLE" /> 
     <data android:host="*" android:scheme="file" android:mimeType="image/*" />    
    </intent-filter> 

</activity> 

Как вы можете видеть, что вам нужно добавить тип пантомимы, который подходит к тому, что вы ищете, в моем примере, я хочу только изображения - PNG, JPG и т.д.

Проверьте в следующем link, у вас есть список типов mime.

0

simple and complete example code (less than 50 lines) для приложения, которое андроид представит пользователю вместе со списком меню совместимых приложений (поляризатор, браузер и т. Д.) При открытии TXT-файла.

отказ от ответственности: в случае, если пользователя hasnt ранее определенное приложение по умолчанию

Примечание: TXT может быть изменен для других расширений, всегда обращая внимание на типы MIME.

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