XAMARIN-ANDROID从我的Android应用程序中提取Zip文件

时间:2017-06-20 05:52:32

标签: android xamarin.android intentfilter

我需要启用我的应用程序来解压缩zip文件,并且我想在从设备点击(选择)zip文件时打开我的应用程序。 我在审核了一些帖子like thisthis

后创建了Created和IntentFilter
    [Activity(Label ="Zip")]
    [IntentFilter(new[] { Intent.ActionView },
    Categories = new[] { Intent.CategoryDefault },
                            DataScheme ="file",
                            DataHost ="*",
                            DataPathPattern = "*\\.zip",
                            DataMimeType = "application/zip"
                            DataPathPattern = "*\\.zip",
                            DataMimeType = "application/zip"
    )]

活动代码在这里:

 protected override void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);

        var uri =  Intent.Data.Path;
        Toast.MakeText(this, uri, ToastLength.Long);

    }

问题:当我选择zip文件时,我的应用程序没有启动。 参考文档:https://developer.android.com/guide/topics/manifest/data-element.html

1 个答案:

答案 0 :(得分:1)

我做了很多测试,最后发现在修改我的代码后,它可以工作:

DataMimeType = "*/*"

添加条件以限制您的应用仅适用于.zip文件:

DataPathPattern = ".*\\.zip"

完整代码:

[Activity(Label = "Zip", MainLauncher = true, Icon = "@drawable/icon")]
[IntentFilter(new[] { Intent.ActionView },
Categories = new[] { Intent.CategoryDefault },
                        DataScheme = "file",
                        DataHost = "*",
                        DataPathPattern = ".*\\.zip",
                        DataMimeType = "*/*"
)]