android - Kotlin:关联特定的文件扩展名以打开没有明确扩展名的“内容”文件
问题描述
在我的项目中,我希望我的应用程序打开自定义文件扩展名,例如“ .bla ”
我使用以下IntentFilter来执行此操作:
<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="file" />
<data android:scheme="content" />
<data android:mimeType="application/*" />
<data android:host="*" />
<data android:pathPattern=".*" />
</intent-filter>
这很好用,但问题是我的应用程序出现在任何文件类型的“打开方式”列表中 - 正如预期的那样,但我希望它只打开我的扩展名。
我不能使用显式扩展名“ .bla ”,因为如果我从 WhatsApp 打开一个bla文件,它将无法工作,因为该文件不会有其扩展名的普通路径,而是类似于“内容: //com.whatsapp.provider.media/item/03fda30df57e-c5e3a-46ea-6df67-fd23e4a3cb4fe '
因此,我将pathPattern用作.*而不是.*\\.bla之类的东西来使其工作
我应该怎么做才能解决这个问题并让我的应用程序只打开.bla扩展名
解决方案
推荐阅读
- php - 如何使用 Carbon 在 laravel 中将 Date (2020-11-23T13:26:02.000Z) 格式化为 Ymd h:i:s?
- html - 如何使用 css flexbox 进行此设计?
- reactjs - 未从 react-native-dropdown-picker 选择和更新项目
- ios - AVAssetWriter 无法用视频录制音频 | 崩溃
- python - Python ES2CSV -elasticsearch.exceptions.RequestError: RequestError(400, u'search_phase_execution_exception', u'compile error')
- c# - 在 C# 中创建幂函数而不使用 Math.Pow(x, y)
- java - 使用 Stream API 过滤器和 peek 运算符将字符串转换为地图
- javascript - 转换内容到 Base64 并发送到期望 MultiPartFile 的 Spring 方法
- java - Android上的图像和文件操作
- z3 - 如何在 Z3 中以 SMTLIB 格式表示集合成员?