Android:一些共享意向(微信、Url2Pdf)在定制后未立即显示
因此,我正在尝试通过Intent.ACTION\u SEND自定义显示的应用程序,除了微信和UrlToPDF外,效果非常好。它显示为“Android系统”,而不是“微信”。如果我点击它,它会打开另一个intent,微信应用程序显示在右边,但没有其他应用程序。我做错了什么 代码如下:Android:一些共享意向(微信、Url2Pdf)在定制后未立即显示,android,android-intent,wechat,Android,Android Intent,Wechat,因此,我正在尝试通过Intent.ACTION\u SEND自定义显示的应用程序,除了微信和UrlToPDF外,效果非常好。它显示为“Android系统”,而不是“微信”。如果我点击它,它会打开另一个intent,微信应用程序显示在右边,但没有其他应用程序。我做错了什么 代码如下: shareIntent = new Intent(Intent.ACTION_SEND); shareIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT); shar
shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT);
shareIntent.setType("text/plain");
shareIntent.putExtra(Intent.EXTRA_TEXT, forecastStr+" #SunshineApp");
final PackageManager pm = getActivity().getPackageManager();
final List<ResolveInfo> resInfo = pm.queryIntentActivities(shareIntent, 0);
ArrayList <String> packageAllowed = new ArrayList();
packageAllowed.add("com.twitter.android");
packageAllowed.add("com.facebook.katana");
packageAllowed.add("com.google.android.gm");
packageAllowed.add("com.whatsapp");
packageAllowed.add("com.evernote");
packageAllowed.add("ch.threema.app");
packageAllowed.add("com.skype.raider");
packageAllowed.add("com.tencent.mm");
packageAllowed.add("com.tencent.mm.ui.tools.ShareToTimeLineUI");
ArrayList <String> packageSum = new ArrayList();
if (!resInfo.isEmpty()) {
List<Intent> targetedShareIntents = new ArrayList<Intent>();
for (ResolveInfo resolveInfo : resInfo) {
String packageName = resolveInfo.activityInfo.packageName;
if(packageAllowed.contains(packageName)){
Intent intent=new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT, "Text");
intent.putExtra(Intent.EXTRA_SUBJECT, "Subject");
intent.setPackage(packageName);
targetedShareIntents.add(intent);
}
}
int size = targetedShareIntents.size();
Intent chooserIntent = Intent.createChooser(targetedShareIntents.remove(targetedShareIntents.size()-1), "Share");
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, targetedShareIntents.toArray(new Parcelable[]{}));
startActivity(chooserIntent);
}
shareIntent=新的意图(Intent.ACTION\u SEND);
shareIntent.addFlags(Intent.FLAG\u活动\u新文档);
shareIntent.setType(“文本/普通”);
shareIntent.putExtra(Intent.EXTRA_TEXT,forecastStr+“#SunshineApp”);
最终PackageManager pm=getActivity().getPackageManager();
最终列表resInfo=pm.querytentActivities(shareIntent,0);
ArrayList packageAllowed=新的ArrayList();
packageAllowed.add(“com.twitter.android”);
packageAllowed.add(“com.facebook.katana”);
packageAllowed.add(“com.google.android.gm”);
packageAllowed.add(“com.whatsapp”);
packageAllowed.add(“com.evernote”);
允许包装。添加(“ch.threema.app”);
packageAllowed.add(“com.skype.raider”);
packageAllowed.add(“com.tencent.mm”);
packageAllowed.add(“com.tencent.mm.ui.tools.ShareToTimeLineUI”);
ArrayList packageSum=新的ArrayList();
如果(!resInfo.isEmpty()){
List targetedShareContents=new ArrayList();
对于(ResolveInfo ResolveInfo:resInfo){
字符串packageName=resolveInfo.activityInfo.packageName;
如果(packageAllowed.contains(packageName)){
意图=新意图();
intent.setAction(intent.ACTION\u SEND);
intent.setType(“文本/普通”);
intent.putExtra(intent.EXTRA_TEXT,“TEXT”);
intent.putExtra(intent.EXTRA_SUBJECT,“SUBJECT”);
intent.setPackage(packageName);
targetedShareContents.add(意图);
}
}
int size=targetedShareContents.size();
Intent chooserentent=Intent.createChooser(targetedShareContents.remove(targetedShareContents.size()-1),“共享”);
选择content.putExtra(Intent.EXTRA_INITIAL_INTENTS,targetedShareContents.toArray(新包裹[]{}));
开始触觉(选择内容);
}
尝试另外设置组件名称:
if(packageAllowed.contains(packageName)){
Intent intent=new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT, "Text");
intent.putExtra(Intent.EXTRA_SUBJECT, "Subject");
// This is new!!!
intent.setComponent(new ComponentName(packageName, resolveInfo.activityInfo.name));
intent.setPackage(packageName);
targetedShareIntents.add(intent);
}
尝试另外设置组件名称:
if(packageAllowed.contains(packageName)){
Intent intent=new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT, "Text");
intent.putExtra(Intent.EXTRA_SUBJECT, "Subject");
// This is new!!!
intent.setComponent(new ComponentName(packageName, resolveInfo.activityInfo.name));
intent.setPackage(packageName);
targetedShareIntents.add(intent);
}
那是很多不相关的聊天,请阅读。那是很多不相关的聊天,请阅读。它起作用了:)非常感谢:)你能解释一下为什么我必须为一些应用“设置组件”吗?:)我很抱歉。我有一个类似的问题,这解决了我的问题。但是,将答案标记为解决方案并投赞成票将有助于其他人确定正确答案。我已经标记了你的答案:)我会在获得足够声誉时给你投赞成票;)我不会忘记,但这可能需要一些时间;)再次感谢:)成功了:)非常感谢:)你能给我解释一下为什么我必须为一些应用程序“设置组件”吗?:)我很抱歉。我有一个类似的问题,这解决了我的问题。但是,将答案标记为解决方案并投赞成票将有助于其他人确定正确答案。我已经标记了你的答案:)我会在获得足够声誉时给你投赞成票;)我不会忘记,但这可能需要一些时间;)再次感谢:)