Android Intent createChooser停止代码在棉花糖中不工作
我在pre Marshmallow应用程序中有一个代码,它只选择了一些已安装的应用程序,这些应用程序实现了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
Intent.ACTION\u SEND
和show aIntent.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
,因此不需要在选择器上创建选择器。