Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xamarin CreateChooser在Android v5.1中不工作_Xamarin_Android Intent_Xamarin.android_File Sharing - Fatal编程技术网

Xamarin CreateChooser在Android v5.1中不工作

Xamarin CreateChooser在Android v5.1中不工作,xamarin,android-intent,xamarin.android,file-sharing,Xamarin,Android Intent,Xamarin.android,File Sharing,我正在使用intent共享pdf文件。我在共享文件时限制应用程序。我想把这个文件分享给GoodDocument,Kindle和Dropbox。我正在使用下面的代码来实现这一点。但是下面的代码在android v5.1中不起作用。设备具有要共享的必需应用程序。但在共享时显示“没有应用程序可以执行此操作”。有人能提出解决这个问题的建议吗 var pathFile = Environment.GetFolderPath(Environment.SpecialFolder.Personal);

我正在使用intent共享pdf文件。我在共享文件时限制应用程序。我想把这个文件分享给GoodDocument,Kindle和Dropbox。我正在使用下面的代码来实现这一点。但是下面的代码在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);

            }
var pathFile=Environment.GetFolderPath(Environment.SpecialFolder.Personal);
var m_documentMobiNames=shortName+“+”文件类型;
var mobileFileName=Path.Combine(路径文件,m_documentMobiNames);
var sharedintentslists=新列表();
Intent sendIntent=新Intent();
sendIntent.SetAction(Intent.ActionSend);
sendIntent.SetType(“应用程序/pdf”);
var resinfo=context.PackageManager.querytentActivities(sendIntent,0);
如果(resinfo.Count>0)
{
foreach(resInfo中的var resInfo)
{
字符串packageName=resInfo.ActivityInfo.packageName;
if(packageName.Contains(“com.google.android.apps.docs”)| | packageName.Contains(“com.dropbox.android”)| | packageName.Contains(“com.amazon.kindle”))
{
意图=新意图();
SetComponent(新组件名(packageName、resInfo.ActivityInfo.Name));
intent.SetAction(intent.ActionSend);
intent.SetType(“application/pdf”);
intent.PutExtra(intent.ExtraStream,Android.Net.Uri.Parse(“文件:/”+mobileFileName));
intent.SetPackage(packageName);
添加(意图);
}
}
}
如果(shareIntentsLists.Count>0)
{
chooserentent=Intent.CreateChooser(新Intent(),“与共享”);
选择content.PutExtra(Intent.ExtraStream,Android.Net.Uri.Parse(mobileFileName));
选择content.PutExtra(Intent.ExtraInitialIntents,shareIntentsLists.ToArray());
选择Content.SetFlags(ActivityFlags.ClearTop);
选择Content.SetFlags(ActivityFlags.NewTask);
上下文。开始触觉(选择内容);
等待任务。FromResult(true);
}

你是说它适用于所有其他API,但不适用于API-22吗?是的。它在其他API版本中工作。但不是在API-22中,你是说它适用于所有其他API,而不是API-22吗?是的。它在其他API版本中工作。但不是在API-22中