首页 > 解决方案 > 从文件管理器或其他应用程序将用户带到我的活动

问题描述

在我的应用程序中有一个可以编辑文本文件的活动。我想打开此活动中的所有文本文件。我尝试了以下意图过滤器,但它不起作用,当单击文本文件文件管理器时,不会在可用应用程序列表中显示我的应用程序。我的问题是如何对我的应用程序进行编程,使其可用于任何文本文件。

<?xml version="1.0" encoding="utf-8"?>

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

<application
        android:allowBackup="true"
        android:icon="@drawable/note_it_icon"
        android:label="@string/app_name"
        android:roundIcon="@drawable/note_it_icon"
        android:supportsRtl="true">
    <activity
            android:name=".MainActivity"
            android:label="@string/app_name">
    </activity>
    <activity
            android:name=".Welcome_Act"
            android:theme="@style/AppTheme.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>

            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>
    <activity
            android:name=".EditorActivity"
            android:label="@string/title_activity_editor">
      <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:mimeType="text/plain"/>
        <data android:mimeType="image/jpeg"/>
        <data android:host="*" />
        <data android:scheme="file"/>
      </intent-filter>
    </activity>
    <activity android:name=".DialogActivity"
        android:theme="@style/Theme.AppCompat.Light.Dialog">
    </activity>
    <activity android:name=".SecureActivity">
    </activity>
    <activity
            android:name=".IntroActivity"
            android:theme="@style/AppTheme.NoActionBar">
    </activity>
    <activity
            android:name=".FirstNoteActivity"
            android:label="@string/title_activity_first_note">
    </activity>
    <activity android:name=".PermissionActivity"
                android:theme="@style/AppTheme">
    </activity>
    <activity android:name=".CreditActivity">
    </activity>
    <activity
            android:name=".PreferenceActivity"
            android:label="@string/title_activity_preference">
    </activity>
</application>

在上面的代码中EditorActivity可以打开和编辑文本文件。我想使用 EditorActivity 从存储中打开文本文件。我想在下面的屏幕截图列表中添加我的应用程序的 EditorActivity。 可用文本编辑器的屏幕截图

标签: androidandroid-intent

解决方案


好吧,我使用的是 android Nougat,它还需要一件事:

<data android:scheme="content" />

现在它的工作。完整的意图过滤器是:

<intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="text/plain"/>
            <data android:mimeType="image/jpeg"/>
            <data android:host="*" />
            <data android:scheme="file"/>
            <data android:scheme="content" />
</intent-filter>

推荐阅读