[英]Android intent-filter to be notified of an attempt to view a CSV file in the Download Manager
注册您的应用程序所需的魔法咒语是什么,以便在用户尝试查看他们之前通过下载管理器下载的 CSV 文件时收到通知。 我玩了一会儿,下面的过滤器会很高兴地拦截由以下生成的通知:Dropbox、Box、Google Drive、Sky Drive、Chrome ..... 并提供自己打开文件,但我的应用程序没有得到任何东西当用户尝试通过下载管理器查看文件时。
<intent-filter>
<action android:name="com.my.testImportApp.LAUNCH" />
<action android:name="android.intent.action.SEND" />
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.EDIT" />
<action android:name="android.intent.action.PASTE" />
<action android:name="android.intent.action.OPEN_DOCUMENT" />
<action android:name="android.intent.action.GET_CONTENT" />
<action android:name="android.intent.action.INSERT" />
<action android:name="android.intent.action.INSERT_OR_EDIT" />
<action android:name="android.intent.action.SENDTO" />
<action android:name="android.intent.action.SEND_MULTIPLE" />
<action android:name="android.intent.action.PICK" />
<category android:name="android.intent.category.CATEGORY_BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.LAUNCHER" />
<data android:scheme="http" />
<data android:scheme="https" />
<data android:scheme="ftp" />
<data android:scheme="file" />
<data android:scheme="data" />
<data android:scheme="info" />
<data android:scheme="data" />
<data android:scheme="smb" />
<data android:scheme="nfs" />
<data android:scheme="android.resource" />
<data android:mimeType="text/comma-separated-values"/>
<data android:mimeType="text/csv"/>
<data android:mimeType="text/plain"/>
</intent-filter>
经过一段时间的播放,以下似乎有效:
<intent-filter>
<action android:name="android.intent.action.SEND" />
<action android:name="android.intent.action.SEND_MULTIPLE" />
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.OPEN_DOCUMENT" />
<action android:name="android.intent.action.PICK" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.ALTERNATIVE" />
<data android:scheme="http" />
<data android:scheme="https" />
<data android:scheme="ftp" />
<data android:scheme="file" />
<data android:scheme="data" />
<data android:scheme="info" />
<data android:scheme="data" />
<data android:scheme="smb" />
<data android:scheme="nfs" />
<data android:mimeType="text/comma-separated-values"/>
<data android:mimeType="text/csv"/>
<data android:mimeType="text/plain"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEND" />
<action android:name="android.intent.action.SEND_MULTIPLE" />
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.OPEN_DOCUMENT" />
<action android:name="android.intent.action.PICK" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.ALTERNATIVE" />
<data android:scheme="http" />
<data android:scheme="https" />
<data android:scheme="ftp" />
<data android:scheme="file" />
<data android:scheme="data" />
<data android:scheme="info" />
<data android:scheme="data" />
<data android:scheme="smb" />
<data android:scheme="nfs" />
<data android:host="*" />
<data android:pathPattern="/.*\\.csv" />
<data android:pathPattern="/.*\\.CSV" />
<data android:pathPattern="/.*\\.txt" />
<data android:pathPattern="/.*\\.text" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEND" />
<action android:name="android.intent.action.SEND_MULTIPLE" />
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.OPEN_DOCUMENT" />
<action android:name="android.intent.action.PICK" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.ALTERNATIVE" />
<data android:mimeType="text/comma-separated-values"/>
<data android:mimeType="text/csv"/>
<data android:mimeType="text/plain"/>
</intent-filter>
你不需要真的玩,这里有一个快速的往返来找出你需要的东西。
{act=android.intent.action.VIEW dat=content://com.android.providers.downloads.documents/document/2183 typ=text/csv flg=0x3 ...
这意味着您的方案是“内容”,而您的 mime 类型是“text/csv”。 作为提示,当您看到“打开方式”对话框时,请保持打开状态并使用新的过滤器设置执行./gradlew installDebug
,当您在清单集中满足过滤条件时,它将立即出现。
这对我有用
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:host="*" />
<data android:scheme="content" />
<data android:mimeType="text/*"/>
</intent-filter>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.