由于将目标SDK更新为26并在Android 8.1设备上进行测试,因此点击GMail中的电子邮件附件(我们的文件扩展名)不再会打开我们的应用活动。
我相信这是因为支持Android 8中的隐式意图被删除,但无法确定替代方法。
<activity
android:name="com.abc.RestoreActivity"
android:noHistory="true"
android:label="@string/app_name"
android:screenOrientation="portrait">
<!-- Filter to open file with gmail version < 4.2 -->
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="application/fileextn" />
<data android:pathPattern=".*\\.fileextn" />
<data android:host="*" />
</intent-filter>
<!-- Filter to open file with gmail version 4.2 -->
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="application/octet-stream" />
<data android:pathPattern=".*\\.fileextn" />
<data android:host="*" />
</intent-filter>
</activity>
点击GMail中的电子邮件附件现在打开GMail对话框,显示“提取附件...”并且进度条正在运行 - 并且在取消之前它永远不会停止。
或者,如果我下载该文件,然后从下载管理器打开它...它会打开我们的应用程序。
试试这个
<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="content"
tools:ignore="AppLinkUrlError" />
<data android:mimeType="application/octet-stream" />
<data android:pathPattern=".*\\.fileextn" />
</intent-filter>