Насколько я могу судить, типы пантомимы довольно гибки (я создал мой как application/whatever
), и они сразу же принимаются Android, начиная с версии 2.1 Dalvik.Чтобы обработать их должным образом, я добавил этот фильтр намерений:
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="application/whatever" />
</intent-filter>
Хотя есть предостережение.Несмотря на то, что я всегда устанавливаю тип отправляемого намерения с помощью intent.setType("application/whatever");
, на некоторых телефонах фактические данные о прибытии я видел как application/octet
(чтобы увидеть значение, я назначил входящий намерение и проверил его значение напрямую Intent currentIntent = getIntent();
).Принимающее устройство Android не знало, что делать с поступающими данными, и мне так и сказали.Поэтому я добавил
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="application/octet-stream" />
</intent-filter>
Этот подход, конечно, может быть проблематичным, но проблема с Gmail, по крайней мере, заключается в том, что он не обязательно записывает файл с именем, как он входит, который отображает любой путь Iвыбрать, чтобы определить бесполезно.И, по крайней мере, с входящим octet-stream
вы знаете, что это не какие-то специфические данные приложения, которые вы крадете ... Тем не менее, вам следует проверять данные впоследствии, а не просто предполагать, что они действительны для вашего приложения.