Potrzebuję otworzyć pliki z niestandardowym rozszerzeniem za pomocą mojej aplikacji. Mogę to zrobić za pomocą filtrów Intent, gdy plik znajduje się na mojej karcie SD. Mogę również wyświetlić przyciski "pobierz" i "podgląd", jeśli plik zostanie wysłany jako załącznik do Gmaila. Kiedy jednak kliknąłem przyciski pobierania/podglądu, otrzymałem wiadomość - "Niestety, nie można pobrać załącznika".Android - otwieranie załącznika do Gmaila za pomocą mojej aplikacji
Pomyślałem, że to był problem z moją aplikacją. Ale wpadłem na pomysł i zainstalowałem na telefonie aplikację "Pobierz wszystkie pliki". https://play.google.com/store/apps/details?id=com.hwkrbbt.downloadall&hl=en Następnie, po kliknięciu przycisku pobierania w Gmailu, proponuje się pobranie wszystkich plików i mojej aplikacji do pobrania. Wybrałem moją aplikację i wszystko działa dobrze !!
Czy to jakiś problem z bezpieczeństwem? Są to moim zamiarem Filtry:
<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:mimeType="*/*" />
<data android:scheme="content" android:host="*"
android:pathPattern=".*\\.ate" />
<data android:scheme="file" android:host="*"
android:pathPattern=".*\\.ate" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="application/*" host="*" android:pathPattern=".*.ate" android:scheme="content" />
</intent-filter>
EDIT: Tutaj jest pełny tag aktywności.
<activity android:name=".TestApp"
android:label="@string/app_name"
android:configChanges="orientation|keyboardHidden"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="com.TestApp.TestApp.NOTIFICATION" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<!-- Opening .ate file start -->
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="file" />
<data android:host="*" />
<data android:pathPattern=".*\\.ate" />
</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:mimeType="*/*" />
<data android:scheme="content" android:host="*"
android:pathPattern=".*\\.ate" />
<data android:scheme="file" android:host="*"
android:pathPattern=".*\\.ate" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.BROWSABLE"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="file" android:pathPattern=".*\\.ate" android:mimeType="application/octet-stream"/>
<data android:scheme="content" android:pathPattern=".*\\.ate" android:mimeType="application/octet-stream"/>
</intent-filter>
<!-- Opening .ate file end -->
</activity>
Czy próbowałeś ** android: host = "Gmail-ls" **? –