【问题标题】:Why does this Activity intent-filter fails to match the given Intent?为什么这个 Activity 意图过滤器无法匹配给定的意图?
【发布时间】:2020-01-17 02:56:40
【问题描述】:

我在声明 Intent 过滤器时遇到问题。为什么下面的代码不起作用?

ActivityAndroidManifest.xml 中声明:

    <activity
        android:name="com.twoplay.smb.SmbLoginActivity"
        android:label="@string/smb_login_activity_name"
        android:theme="@style/SmbLoginTheme"
        >
        <intent-filter>
            <action android:name="android.provider.action.DOCUMENT_SETTINGS" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:scheme="content"
                android:host="com.twoplay.netplayer.smb"
                android:mimeType="*/*" />
        </intent-filter>
    </activity>

启动活动的代码:

    Intent intent = new Intent(DocumentsContract.ACTION_DOCUMENT_SETTINGS);
    intent.setPackage("com.twoplay.netplayer");
    intent.addCategory(Intent.CATEGORY_DEFAULT);
    intent.setData(Uri.parse("content://com.twoplay.netplayer.smb/tree/share%2FLOTHLORIEN"));
    intent.setType("image/png");
    try {
        startActivity(intent);
    } catch (ActivityNotFoundException e) {
        Log.e(TAG, "Failed to view settings in application",e);
    }

在执行时,startActivity 会抛出以下异常:

android.content.ActivityNotFoundException: No Activity found to 
handle Intent { act=android.provider.action.DOCUMENT_SETTINGS 
cat=[android.intent.category.DEFAULT] typ=image/png }

作为上下文,我正在尝试在 Document Provider 文档上实现设置。 startActivity 代码是从文档提供程序 UI 应用程序的 google 源代码剪切和粘贴的,但在我自己的测试活动中运行,以便我可以调试它。 Document Provider UI 正确显示了“Display in”菜单,但单击菜单项没有任何反应,并且 UI 中没有可见错误,尽管 android 核心源建议如果 startActivity 调用失败,则应该有一个 Log.e 调用. git 档案指出,我正在查看的 Document Provider UI 的来源是“Android 10 Release”(尽管它可能与我设备上的不匹配)。

目标Activity通过其他方式启动没有问题,所以目标Activity没有明显问题。使用上面给出的代码时,永远不会到达 Activity.onCreate 上的断点。日志文件中没有错误或警告。并且没有明显相关的信息或调试消息。

在 Android Q 上运行。

【问题讨论】:

    标签: android android-intent android-activity


    【解决方案1】:

    如果您在两个地方都删除了type,它将被修复。但我不知道为什么它在定义类型时会崩溃。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-17
      • 2016-07-09
      • 1970-01-01
      • 2011-08-04
      • 1970-01-01
      • 1970-01-01
      • 2017-05-21
      相关资源
      最近更新 更多