使用Intent共享在Android 5.1版本中不起作用

时间:2017-10-17 11:38:45

标签: android-intent xamarin.android android-sharing

我正在使用意图过滤器将PDF文件共享给其他应用程序。它在Android v5.1中无效。但在其他版本中,它工作正常。设备有所需的应用程序以下是我的代码。我们如何解决这个问题?

var pathFile = Environment.GetFolderPath(Environment.SpecialFolder.Personal); 
            var m_documentMobiNames = shortName + "." + fileType;
            var mobileFileName = Path.Combine(pathFile, m_documentMobiNames);
            var shareIntentsLists = new List<Intent>();
            Intent sendIntent = new Intent();
            sendIntent.SetAction(Intent.ActionSend);
            sendIntent.SetType("application/pdf");
            var resInfos = context.PackageManager.QueryIntentActivities(sendIntent, 0);
            if (resInfos.Count > 0)
            {
                foreach (var resInfo in resInfos)
                {
                    string packageName = resInfo.ActivityInfo.PackageName;
                    if (packageName.Contains("com.google.android.apps.docs") || packageName.Contains("com.dropbox.android") || packageName.Contains("com.amazon.kindle"))
                    {
                        Intent intent = new Intent();
                        intent.SetComponent(new ComponentName(packageName, resInfo.ActivityInfo.Name));
                        intent.SetAction(Intent.ActionSend);
                        intent.SetType("application/pdf");
                        intent.PutExtra(Intent.ExtraStream, Android.Net.Uri.Parse("file://" + mobileFileName));
                        intent.SetPackage(packageName);
                        shareIntentsLists.Add(intent);
                    }
                }
            }

            if (shareIntentsLists.Count > 0)
            {
                chooserIntent = Intent.CreateChooser(new Intent(), "Share with");
                chooserIntent.PutExtra(Intent.ExtraStream, Android.Net.Uri.Parse(mobileFileName));
                chooserIntent.PutExtra(Intent.ExtraInitialIntents, shareIntentsLists.ToArray());
                chooserIntent.SetFlags(ActivityFlags.ClearTop);
                chooserIntent.SetFlags(ActivityFlags.NewTask);
                context.StartActivity(chooserIntent);
                await Task.FromResult(true);
            }

当我点击分享时,它会显示“没有应用可以执行此操作”

0 个答案:

没有答案