编辑:在评论代码应该是正确的之后,我正在玩一些东西,我发现:
当我尝试从文件浏览器打开pgn文件时,我的应用程序在列表中。我之前没有尝试这个,因为我的主要目标是通过其他应用程序捕获文件共享。不知道它有什么不同。明天我会努力寻找改进,欢迎任何想法...
原始问题,不再那么重要了
我希望我的应用程序成为使用具体mime类型打开Intent的可能应用程序之一。我很确定必须在某处覆盖这个主题,但无论我尝试什么,我的应用程序仍然是不可见的(对于其他mime类型它也是不可见的)。这是github上另一个应用程序的应用程序清单中的代码的一部分。
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="application/x-chess-pgn" />
</intent-filter>
这是我做的尝试之一
[Activity(MainLauncher = true, Theme = "@android:style/Theme.Light.NoTitleBar.Fullscreen",LaunchMode =Android.Content.PM.LaunchMode.SingleTop)]
[IntentFilter(actions: new[] { "android.intent.action.VIEW" },DataMimeTypes = new[] {"application/x-chess-pgn"}, Categories = new [] {Android.Content.Intent.CategoryDefault} )]
public class StartPageActivity : Activity
{
...
}
这是另一个
protected async override void OnCreate(Bundle savedInstanceState)
{
IntentFilter filter = new IntentFilter(Intent.ActionView, "application/x-chess-pgn");
BroadcastReceiver receiver = new PgnBroadcast();
RegisterReceiver(receiver, filter);
...
}
我也在尝试在清单文件中做同样的事情,但这并不是我的口味,它也没有用。对于具体的意图类型,系统是否可以看到我的应用程序需要执行的其他操作?视频或链接将非常受欢迎。
答案 0 :(得分:0)
不熟悉android的系统属性我在错误的地方挖掘。我一直在通过分享操作测试接收文件。为了能够抓住这个,必须有
&#34; android.intent.action.SEND&#34;
意图过滤器中的操作。现在,我的应用程序在文件浏览器和共享中都可以看作开启。
[IntentFilter(actions: new[] { "android.intent.action.VIEW", "android.intent.action.SEND" },DataMimeTypes = new[] { "application/x-chess-pgn" }, Categories = new [] {Android.Content.Intent.CategoryDefault} )]