TL:DR; バージョン:
- マニフェストに 2,000 行、1 つのアクティビティに 4 つのインテント フィルター、50 の mimeTypes、400 の fileExtensions
- アプリは、アクション SEND を介して印刷に関連するすべてのファイルを開きます (txt から xls、tiff、vcs など)。
ただし、印刷できないファイル (ビデオ、APK など) は含まれません。
サードパーティのエクスプローラーから SINGLE ファイルを開くと、フィルターが正しく機能する
- 複数のファイル (SEND_MULTIPLE) に対して同じことを行うと、1 つのファイルが一致する場合にフィルターが正しく機能します。
問題:
使用時
List<ResolveInfo> resolveList = ctx.getPackageManager().queryIntentActivities(i, PackageManager.MATCH_DEFAULT_ONLY);
マニフェストのインテント フィルターがその OUT をフィルター処理する必要がある場合でも、ビデオ (つまり、印刷不可) を含む Uri のアプリで、アプリが提供されます。(サードパーティのアプリからファイルを開くときと同様です。)
ドキュメントを参照してください: http://developer.android.com/reference/android/content/pm/PackageManager.html#MATCH_DEFAULT_ONLY
...マニフェストは正しくなければなりませんが、クエリはフィルタリングされていないようです... =/
アドバイスやアイデアはありますか?