Android 编程新手。当从 whatsapp、messenger、gmail 等打开具有我的自定义扩展名“.replaysecret”的附件时,我试图打开我的应用程序。该文件是我用我的扩展名重命名的 pcm 音频文件。我的应用程序正确打开,我可以看到 uri 数据,我找到了一些代码给我文件名,但我不知道如何获取文件路径或以其他方式加载文件数据。关于我应该做什么的任何建议?
这是我的意图过滤器
<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="content"/>
<data android:host="*"/>
<!-- Required for Gmail and Samsung Email App -->
<data android:mimeType="application/octet-stream"/>
<!-- Required for Outlook -->
<data android:mimeType="application/replaysecret"/>
</intent-filter>
这是我从 uri 获取文件名的代码
var uri = intent.data
if(uri != null){
var fileName: String? = null
var cursor = contentResolver.query(uri!!, null, null, null, null)
if (cursor != null) {
cursor.moveToFirst()
fileName = cursor.getString(0)
fileName = fileName.substring(fileName.lastIndexOf(":") + 1)
cursor.close()
}
//Can't figure out how to get file path or load file data
}
如果重要,这是打开附件时的 uri 字符串: content://com.google.android.gm.sapi/myemail@gmail.com/message_attachment_external/%23thread-a%3Ar1178448143327120464/%23msg-a%3Ar8356029736797240583/0.1 ?account_type=com.google&mimeType=application&2Foctet-stream&rendition=1