Android 在应用程序之间传输文件(.txt)
当通过应用程序共享时,应用程序正在导出文本(.txt)文件,我可以看到Gmail、Dropbox、drive、share等应用程序通过该应用程序共享。我想在我的应用程序中导入该文本文件,以便对其进行进一步修改。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
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>