Android 在相应的外部地图应用程序中打开KML/GPX文件

Android 在相应的外部地图应用程序中打开KML/GPX文件,android,ios,flutter,kml,gpx,Android,Ios,Flutter,Kml,Gpx,我的flatter(安卓和iOS)应用程序生成KML或GPX文件,并按预期工作 现在我想添加一个按钮“打开文件”,它应该打开这样一个系统对话框,其中列出了要选择的已安装地图或其他消费应用程序(可以处理此类格式) 如何打开此对话框?如何查找与格式相关的应用程序,以及如何将文件发送到这些应用程序。我想,这有一个插件,但找不到。它必须在安卓和iOS上工作,很高兴有网络支持 我刚刚看到了,但我不太确定它是否如预期的那样工作,因为它没有列出对KML/GPX的支持 提前谢谢 如果您发现了类似于开源的,您可以

我的flatter(安卓和iOS)应用程序生成KML或GPX文件,并按预期工作

现在我想添加一个按钮“打开文件”,它应该打开这样一个系统对话框,其中列出了要选择的已安装地图或其他消费应用程序(可以处理此类格式)

如何打开此对话框?如何查找与格式相关的应用程序,以及如何将文件发送到这些应用程序。我想,这有一个插件,但找不到。它必须在安卓和iOS上工作,很高兴有网络支持

我刚刚看到了,但我不太确定它是否如预期的那样工作,因为它没有列出对KML/GPX的支持

提前谢谢

如果您发现了类似于开源的,您可以自己添加MIME类型

对于KML格式:

对于GPX格式:

由于软件包是开源的,我考虑修改代码,因为映射看起来很简单:

您需要分叉项目并添加所需的类型

或者你已经发布了

回购所有人的回应是:

OpenFile.open(“/sdcard/example.txt”,键入:“text/plain”,uti:“public.plain text”)


如果可以的话,一定要回复,因为我不确定两个不同平台的文件类型(
uti
vs MIME-type)是否都能在颤振中普遍工作,或者您是否有平台特定的检测代码来正确分配文件类型。

您是否尝试使用文件的URI启动应用程序?好主意,尝试过了,但不幸的是,
canLaunch(…)
是错误的:(错误是
PlatformException(未找到活动,未找到处理意图的活动{The\path\to\The\KML\file.KML},null,null)
然而,安装了一些应用程序,它们可以处理KML:Google地图、轨迹等,c:geo可以处理GPX文件当我添加
文件://
时,我得到了一个
android.os.FileUriExposedException
。在搜索解决方案时,我发现,我必须在我的AndroidManifest中添加一个
提供者
,但这没有帮助……不是吗只是将KML和GPX的MIME类型添加到“open_file”插件中?我不太确定如何做到这一点。特别是我不知道GPX的任何特定MIME类型。