Android Intent createChooser停止代码在棉花糖中不工作

Android Intent createChooser停止代码在棉花糖中不工作,android,android-intent,android-6.0-marshmallow,Android,Android Intent,Android 6.0 Marshmallow,我在pre Marshmallow应用程序中有一个代码,它只选择了一些已安装的应用程序,这些应用程序实现了Intent.ACTION\u SEND和show aIntent.createChooser。这是完整的代码: Intent actionSendIntent = new Intent(); actionSendIntent.setAction(Intent.ACTION_SEND); actionSendIntent.setType("text/plain"); List<Reso

我在pre Marshmallow应用程序中有一个代码,它只选择了一些已安装的应用程序,这些应用程序实现了
Intent.ACTION\u SEND
和show a
Intent.createChooser
。这是完整的代码:

Intent actionSendIntent = new Intent();
actionSendIntent.setAction(Intent.ACTION_SEND);
actionSendIntent.setType("text/plain");
List<ResolveInfo> resInfos = getPackageManager().queryIntentActivities(actionSendIntent, 0);

List<Intent> shareIntents = new ArrayList<Intent>();
if(!resInfos.isEmpty()){
    for(ResolveInfo res : resInfos){
        final String packageName = res.activityInfo.packageName;
        if (packageName.contains("com.twitter.android") ||
                packageName.contains("com.facebook.katana") ||
                packageName.contains("com.facebook.lite") ||
                packageName.contains("com.whatsapp")) {
            final Intent intent = new Intent();
            intent.setComponent(new ComponentName(packageName, res.activityInfo.name));
            intent.setAction(Intent.ACTION_SEND);
            intent.setType("text/plain");
            intent.putExtra(Intent.EXTRA_TEXT, "text");
            intent.putExtra(Intent.EXTRA_SUBJECT, "subject");
            intent.setPackage(packageName);
            shareIntents.add(intent);
        }
    }
}
Intent chooserIntent = Intent.createChooser(shareIntents.remove(0), shareText);
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, shareIntents.toArray(new Parcelable[]{}));
startActivity(Intent.createChooser(chooserIntent, shareText));
Intent actionSendIntent=newintent();
actionSendIntent.setAction(Intent.ACTION\u SEND);
actionSendIntent.setType(“文本/普通”);
List ResInfo=getPackageManager().QueryInputActivities(actionSendIntent,0);
List shareIntents=new ArrayList();
如果(!resinfo.isEmpty()){
对于(ResolveInfo res:ResInfo){
最后一个字符串packageName=res.activityInfo.packageName;
if(packageName.contains(“com.twitter.android”)||
packageName.contains(“com.facebook.katana”)||
packageName.contains(“com.facebook.lite”)||
packageName.contains(“com.whatsapp”)){
最终意图=新意图();
setComponent(新组件名(packageName,res.activityInfo.name));
intent.setAction(intent.ACTION\u SEND);
intent.setType(“文本/普通”);
intent.putExtra(intent.EXTRA_TEXT,“TEXT”);
intent.putExtra(intent.EXTRA_SUBJECT,“SUBJECT”);
intent.setPackage(packageName);
添加(意图);
}
}
}
Intent-chooserint=Intent.createChooser(shareIntents.remove(0),shareText);
选择content.putExtra(Intent.EXTRA_INITIAL_INTENTS,shareIntents.toArray(新包裹[]{}));
startActivity(Intent.createChooser(ChooseContent,shareText));

这段代码在棉花糖中不起作用,显示Android系统是唯一可用的选项。。。有人知道为什么吗?

我很惊讶代码在任何地方都能工作。不要将选择器
Intent
放在选择器
Intent
内。谢谢您的建议,所以。。。如何使其正常工作?摆脱其中一个
createChooser()
调用。可能它应该是第二个,因为IIRC的
额外的\u初始\u意图
操作\u选择器
意图
,即
选择内容
。由于
chooserentent
已经是选择器
Intent
,因此不需要在选择器上创建选择器。