我看到许多使用pathPattern定义特定文件扩展名/类型的intent-filter的例子; 例如,pathPattern=".*\\.xyz".
不幸的是,如果有问题的文件在路径的其他地方有一段时间,这似乎不能正常工作; 例如"my.filename.xyz".
是否有一个与"myfilename.xyz"和"my.filename.xyz"匹配的pathPattern语法?
我想在Android上编写简单的STL(几何数据文件)查看器应用程序,但我无法识别系统的格式.我在我的应用清单文件中写的是:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.EDIT" />
<action android:name="android.intent.action.PICK" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="http" />
<data android:pathPattern=".*\\.stl" />
<data android:mimeType="application/sla" />
<data android:host="*" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)
但是目前我启动浏览器并下载一些示例STL文件,下载中断,我报告系统的数据文件类型未知.我没有真正的Android设备,所以只使用模拟器,为了开发我在MonoDroid上使用C#(但我不认为这是老实说的问题)
关于主题的任何想法?
先感谢您.
我有一个生成自定义文件类型(.sor)的应用程序.在应用程序内部,我有一项功能,可以发送附有这些文件之一的电子邮件.我还有一个intent过滤器,允许应用程序显示在可以打开此类文件的应用程序列表中.这允许我(有时)使用应用程序直接从手机上的用户电子邮件客户端打开文件.
但是,这仅在电子邮件来自PC电子邮件客户端时才有效,并且在从电话收到电子邮件时无效.例如,如果我生成其中一个.sor文件,然后使用我的应用程序向我自己的电子邮件帐户发送电子邮件,我将在手机上收到电子邮件,但无法使用我的应用程序打开附件...但是,如果我将电子邮件发送到同一个帐户并在我的电脑上打开(使用Thunderbird),而不是通过电话打开,然后转发或将其作为新电子邮件发送到我的手机,我将能够使用相同的电子邮件应用程序在手机上用我的应用程序打开附件...我只是在这里谈论一个电子邮件帐户,唯一的区别是电子邮件是从我的手机或我的Windows 7 PC发送的.
我唯一能想到的是,当我从手机发送电子邮件时,附件中嵌入了一个不同的mime类型,而不是当我从我的PC上的Thunderbird发送它时......我将mime类型指定为"application/octet-stream"当我从我的应用程序发送电子邮件时,我有一个寻找此mime类型的intent过滤器......但它无法正常工作.
我的意图过滤器:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="application/octet-stream" />
<data android:scheme="file" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)
当我从手机发送电子邮件附件中的文件时,我传递给手机电子邮件客户端的意图:
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType("application/octet-stream");
sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + fullPathString));
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "FiberDroid OTDR Trace File: \"" + ContextMenuFileName + "\"");
sendIntent.putExtra(Intent.EXTRA_TEXT, "This e-mail was sent from the TTI FiberDroid Android application.");
startActivity(Intent.createChooser(sendIntent, "Select E-Mail Application"));
Run Code Online (Sandbox Code Playgroud)
再一次,附带文件的电子邮件的发送工作正常......如果我从PC电子邮件客户端(例如outlook或thunderbird)将同一文件发回电话,那么我可以用我的应用程序打开文件直接从手机电子邮件应用程序.问题是,如果我在电话上打开电子邮件而不通过我的电脑作为中间人我无法打开附件,我唯一的选择是"保存到SD卡"...
所以回顾一下,我手机上有2封相同的电子邮件,附带相同的文件,最初都是从我的应用程序发送到同一个帐户(也是从同一个帐户收到的),但附件是经过的我的PC作为一个不必要的中间人工作正常,直接从我的手机发送和接收的那个没有.
有任何想法吗?先感谢您.