Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在应用程序之间传输文件(.txt)_Android_Android Intent_Share_Data Import - Fatal编程技术网

Android 在应用程序之间传输文件(.txt)

Android 在应用程序之间传输文件(.txt),android,android-intent,share,data-import,Android,Android Intent,Share,Data Import,当通过应用程序共享时,应用程序正在导出文本(.txt)文件,我可以看到Gmail、Dropbox、drive、share等应用程序通过该应用程序共享。我想在我的应用程序中导入该文本文件,以便对其进行进一步修改。txt文件。 我应该在清单或主活动中实现什么? 我应该使用INTENT过滤器还是应该使用getUriForFile()方法来接收文本文件? 我的应用将如何显示在导出文本文件的其他应用共享列表中 我认为您必须将应用程序与文件扩展名相关联,为此: <data android:scheme

当通过应用程序共享时,应用程序正在导出文本(.txt)文件,我可以看到Gmail、Dropbox、drive、share等应用程序通过该应用程序共享。我想在我的应用程序中导入该文本文件,以便对其进行进一步修改。txt文件。 我应该在清单或主活动中实现什么? 我应该使用
INTENT
过滤器还是应该使用
getUriForFile()
方法来接收文本文件?
我的应用将如何显示在导出文本文件的其他应用共享列表中

我认为您必须将应用程序与文件扩展名相关联,为此:

<data android:scheme="file" /> //Means local file
<data android:mimeType="*/*"/> //This accept any mimeType
<data android:pathPattern=".*\\.txt" /> //Your excepted extention

希望这能对您有所帮助。

您可以使用以下
意图过滤器
将其他应用程序中的任何文件导入清单

            <intent-filter>
            <action android:name="android.intent.action.SEND"/>
            <category android:name="android.intent.category.DEFAULT"/>
            <data android:mimeType="*/*"/>
            <data android:mimeType="text/plain"/>
更新

如果该活动是您的启动器活动,则使用以下意图过滤器

    <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:theme="@style/AppTheme.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
         <intent-filter>
            <action android:name="android.intent.action.SEND_MULTIPLE"/>
            <category android:name="android.intent.category.DEFAULT"/>
            <data android:mimeType="*/*"/>
            <data android:mimeType="text/plain"/>
        </intent-filter>
    </activity>


先生,我正在从whatsapp导出聊天,但在实现此功能后,我的应用程序仍然无法在导出选项中显示。但我的文件浏览器是(说复制到)。当我复制它时,我意识到它存储在一个.txt文件中。但我的应用程序在whatsapp上不可见。我收到了一条消息(通过蓝牙、shareit、gmail发送聊天信息,甚至复制到浏览器),但我的应用程序不可见。我编辑了我的答案。它对我有效。请添加您的清单文件。那只有我能理解更多。另外,请告诉我您使用的是哪个设备为我工作。对于路径模式,必须指定主机。否,您只需将此intentFilter放入您的活动中,该活动必须与文本文件联系。
    private Uri getUriForFile() {
    Intent intent = getIntent();
    String action = intent.getAction();
    String type = intent.getType();
    if (TextUtils.equals(Intent.ACTION_SEND, action) && !TextUtils.isEmpty(type)) {

        Uri uri = intent.getParcelableExtra(Intent.EXTRA_STREAM);
        if (uri != null) {
            Log.e("uri",uri.toString());
            return  uri;
        }
    }
    return null;
}
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:theme="@style/AppTheme.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
         <intent-filter>
            <action android:name="android.intent.action.SEND_MULTIPLE"/>
            <category android:name="android.intent.category.DEFAULT"/>
            <data android:mimeType="*/*"/>
            <data android:mimeType="text/plain"/>
        </intent-filter>
    </activity>