Napisałem poniższy filtr intencji, aby otworzyć plik tekstowy za pomocą mojej aplikacji. Wydaje się, że działa, ale tylko czasami. Na przykład, jeśli wyślę plik tekstowy w wiadomości e-mail, jeśli wybiorę opcję Otwórz z poczty, moja aplikacja nie zostanie wyświetlona. Jeśli najpierw wybiorę Zapisz, a następnie otwórz, moja aplikacja zostanie wyświetlona. Podobne doświadczenie z wrzutnią, jeśli spróbuję otworzyć z wrzutni, moja aplikacja nie zostanie wyświetlona jako zdolna do otwarcia, ale jeśli wyeksportuję z wrzutni do sd i użyję menedżera plików, aby ją otworzyć, moja aplikacja zostanie wyświetlona i Pracuje.
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<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:scheme="http" android:host="*" android:pathPattern=".*\\.txt" />
<data android:scheme="https" android:host="*" android:pathPattern=".*\\.txt" />
<!-- <data android:scheme="content" android:host="*" android:pathPattern=".*\\.txt" /> -->
<data android:scheme="file" android:host="*" android:mimeType="*/*" android:pathPattern=".*\\.txt" />
</intent-filter>
2 odpowiedzi
Dropbox i aplikacja Poczta prawdopodobnie korzystają z dostawców treści i nie pasują do pathPattern
. Zazwyczaj dostawcy zawartości nie zawierają rozszerzenia pliku, ale używają typu MIME do wskazania, jaki typ pliku jest otwierany. Jeśli zamierzasz otworzyć dowolny plik text/plain
, a niekoniecznie tylko te, które mają rozszerzenie .txt
, lepiej całkowicie wyłączyć pathPattern
.
<intent-filter>
<data android:mimeType="text/plain" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
Prawdopodobnie dlatego, że aplikacja e-mail i Dropbox używają innego schematu zamiast pliku, http lub https. Spróbuj użyć tylko atrybutu typu mime.
EDYTUJ: Według forów dropbox:
FYI, najłatwiejszym sposobem, aby to teraz zrobić, jest otwarcie aplikacji z Dropbox poprzez zarejestrowanie się w VIEW z prawidłowym typem MIME. Następnie wszystko jest przekazywane prawidłowo, a zapisywanie i oglądanie zmian w plikach do ponownego przesłania jest obsługiwane dobrze.
Musisz tylko określić typ MIME i nic więcej. Nie próbowałem tego, ale prawdopodobnie działa to również w przypadku aplikacji pocztowej, o ile typy MIME są zgodne.
Oto link, jeśli jesteś zainteresowany:
https://forums.dropbox.com/topic.php?id=26035#post-162963
Podobne pytania
Nowe pytania
android
Android to mobilny system operacyjny Google, używany do programowania lub tworzenia urządzeń cyfrowych (smartfony, tablety, samochody, telewizory, Wear, Glass, IoT). W przypadku tematów związanych z Androidem użyj tagów specyficznych dla Androida, takich jak android-intent, android-activity, android-adapter itp. W przypadku pytań innych niż programowanie lub programowanie, ale związanych ze strukturą Androida, użyj tego linku: https: // android.stackexchange.com.