在某些三星 Android 设备上找不到处理意图 OPEN_DOCUMENT_TREE 的 Activity

问题描述 投票:0回答:2

我的 Android 应用程序打开“文档树”选择器以提示对外部存储完整目录的读取权限(根据 Android 10+ 范围存储规则)。

相关代码

    Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
    intent.addFlags(Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION);
    startActivityForResult(intent, REQUEST_ID_PERMISSION);

适用于所有经过测试的版本和设备变体。 但是,我的崩溃显示以下错误在某些三星设备上多次发生。 (A20 - Android 9 | S10/10+ - Android 10 和 11 | Note20 - Android 11)

Fatal Exception: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.OPEN_DOCUMENT_TREE flg=0x40 }
   at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:2071)
   at android.app.Instrumentation.execStartActivity(Instrumentation.java:1717)
   at android.app.Activity.startActivityForResult(Activity.java:5252)
   at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:676)

此问题的任何潜在原因和解决方案,请了解:

  1. 我可以在启动 OPEN_DOCUMENT_TREE 之前检查活动的可用性,但这将导致文档选择器无法打开。
  2. 一些旧的答案建议添加intent.setType(“*/*”),但这不再有效,并导致崩溃,原因在另一个问题中解释(我不再找到,但与这里无关)。
  3. 我还认为这很可能与某些用户在其设备上禁用了 FILES 应用程序有关,因为该错误很可能不会发生在上面列出的所有设备型号上,而是发生在一个子集上。

谢谢你。

android samsung-mobile
2个回答
0
投票

数据点:我在网上搜索我的应用程序用户(在三星 S10 上)报告的“类似异常/崩溃”的解释时遇到了这个讨论。我向用户指出了此讨论,果然,他已停用“文件”应用程序,然后重新激活它解决了问题。


0
投票

© www.soinside.com 2019 - 2024. All rights reserved.