Пример: когда вы нажимаете кнопку для загрузки изображения, вы получаете диалоговое окно для выбора файла. Затем вы можете выбрать приложение, которое вы хотите выбрать. Как я могу сделать свое приложение в этом диалоговом окне?Как активировать активность в диалоговом окне «Выбрать файл»?
ответ
Добавьте следующие фильтры намерений к вашей деятельности, где вы хотите собирание иметь место:
<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, чтобы немного ограничить выбор. Тот, который я предоставил, поместит ваше приложение в селектор для каждого типа файлов.
Я думаю, что он должен немного ограничить mimeType. В моем приложении, когда я вставлял */*, он начал появляться повсюду. – DigCamara
@DigCamara Текущий тип mime в основном говорит: «Мое приложение может помочь вам выбрать PDF-файлы, изображения, видео, текстовые файлы или вообще что-нибудь в наличии». Он может изменить его на любой конкретный тип файла, который он хочет, если он поддерживает только один тип файла. –
- Мы в основном согласны. Я просто подумал, что нужно явно выписать его, чтобы он не попал в эту ловушку. – DigCamara
Вам необходимо добавить фильтр намерений в файл манифеста в активном действии, которое вы хотите обработать. Например: У меня есть 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.
simple and complete example code (less than 50 lines) для приложения, которое андроид представит пользователю вместе со списком меню совместимых приложений (поляризатор, браузер и т. Д.) При открытии TXT-файла.
отказ от ответственности: в случае, если пользователя hasnt ранее определенное приложение по умолчанию
Примечание: TXT может быть изменен для других расширений, всегда обращая внимание на типы MIME.
Вы можете добавить свой код для создания этого диалогового окна выбора файла? – Shoshi
@Shoshi Я не создал его. Я просто нажал кнопку загрузки на веб-странице. –
Вам необходимо объявить соответствующий [IntentFilters] (https://developer.android.com/reference/android/content/IntentFilter.html) для вашей активности в вашем манифесте, пожалуйста, прочитайте: [Выбор файла Android] (http://stackoverflow.com/q/7856959/1267661) – Sam