英文:
How to use intent share without moving another app
问题
以下是翻译好的部分:
我想在浏览器上使用意图共享按钮,通过重叠屏幕,而不是切换到另一个应用程序。
这是我的 AndroidManifest.xml
和 SendActivity.java
:
<activity
android:name=".SendActivity"
android:launchMode="singleTop"
android:theme="@style/LaunchTheme">
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<!-- <category android:name="android.intent.category.BROWSABLE" /> -->
<data android:mimeType="text/plain" />
</intent-filter>
</activity>
package com.example.my_app;
import android.content.Intent;
import android.os.Bundle;
import android.app.Activity;
import java.nio.ByteBuffer;
public class SendActivity extends Activity { }
这是我的情况。当我点击一个应用程序时,屏幕会切换到另一个应用程序。
我想像下面的 Pocket 应用程序一样打开 sendActivity。
如有需要,欢迎继续提问。
英文:
I want to use intent share button on browser by overlapping screen, not moving to another app.
This is my AndroidManifest.xml
and SendActivity.java
<activity
android:name=".SendActivity"
android:launchMode="singleTop"
android:theme="@style/LaunchTheme">
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<!-- <category android:name="android.intent.category.BROWSABLE" /> -->
<data android:mimeType="text/plain" />
</intent-filter>
</activity>
package com.example.my_app;
import android.content.Intent;
import android.os.Bundle;
import android.app.Activity;
import java.nio.ByteBuffer;
public class SendActivity extends Activity { }
This is my situation. When I click an app, the screen moves to another app.
I want to open sendActivity like pocket app in below.
答案1
得分: 1
如果您想在不打开另一个应用程序的情况下发送数据,那么您可以编写一个本地运行的服务。
Flutter应用程序将调用一个方法通道,将要共享的数据传递给该服务,然后由后台服务处理,我相信自Android 8以来,其生命周期限制为10分钟。此服务将处理共享并可以将数据发送到另一个服务器或另一个广播接收器。
然而,如果您需要用户能够配置如何发送他们的数据(使用哪个应用程序),发送给谁等等,则需要在设备上使用绑定活动。
您可以使用以下软件包来管理此过程:
此软件包允许您将文件共享到其他应用程序:https://pub.dev/packages/flutter_share
而这个软件包则允许您分享简单的文本:https://pub.dev/packages/share
英文:
If you want to send data without opening another app, then you could write up a service which will run natively.
The flutter app will invoke a method channel, that will pass the data to be shared to that service, then it's up to the background service, which I believe since Android 8 has a lifespan limit of 10 minutes. This service will then handle the sharing and can send the data off to another server, or another broadcast receiver.
However if you need the user to be able to configure how they want to send their data (which app), who they will send it to, etc, then you will need to use a bound activity on the device.
You can use these packages to manage this:
This package allows you to share files into other applications: https://pub.dev/packages/flutter_share
And this package allows you to share simple text: https://pub.dev/packages/share
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论