【问题标题】:Phone doesn't show my application to open txt-files手机没有显示我打开 txt 文件的应用程序
【发布时间】:2017-08-26 17:34:37
【问题描述】:

我对 android 编程很陌生,我也不是最好的程序员,根据我的知识,以下代码应该可以工作......所以,这就是问题所在: 我希望我的应用程序显示为在手机上打开 txt 文件的选项。这就是为什么我创建了一个广播接收器,它在我的清单中指定如下:

<receiver android:name="MyBroadcastReceiver" android:enabled="true">
            <intent-filter>
                <action android:name="android.intent.action.ACTION_VIEW"/>
                <action android:name="android.intent.action.ACTION_EDIT"/>
                <action android:name="android.intent.action.ACTION_PICK"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <category android:name="android.intent.category.BROWSABLE"/>

                <data android:scheme="file"/>
                <data android:mimeType="text/plain"/>
                <data android:pathPattern=".*\\.txt"/>
                <data android:host="*"/>
            </intent-filter>
        </receiver>

我的广播接收器类如下所示:

public class MyBroadcastReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        Intent intentNoteActivity = new Intent(context, NoteActivity.class);
        intentNoteActivity.putExtra("URI", intent.getData());
        context.startActivity(intentNoteActivity);
    }
}

但是,如果我尝试在手机上打开安装应用程序的 txt 文件,它不会显示我的应用程序。我做错了什么?

【问题讨论】:

    标签: java android android-broadcastreceiver


    【解决方案1】:

    这就是我创建广播接收器的原因

    BroadcastReceiver 不用于以这种方式打开文档。 Activity 就是这样做的。

    但是,如果我尝试在手机上打开安装应用程序的 txt 文件,它不会显示我的应用程序。

    这是因为其他应用将使用startActivity(),而不是sendBroadcast(),使用ACTION_VIEWIntents

    创建一个活动并使用您的&lt;intent-filter&gt;。它应该适用于一些应用程序,但不是很多。消除&lt;data android:pathPattern=".*\\.txt"/&gt;&lt;data android:host="*"/&gt;,并添加&lt;data android:scheme="content"/&gt;,将有助于提高兼容性。

    【讨论】:

    • 工作,更多信息link
    猜你喜欢
    • 2010-09-30
    • 1970-01-01
    • 1970-01-01
    • 2018-05-21
    • 1970-01-01
    • 2021-12-09
    • 2018-11-04
    • 2016-09-06
    • 2013-11-06
    相关资源
    最近更新 更多