jeudi 14 mai 2015

Android: Some Share Intents (WeChat, Url2Pdf) not shown right after Customizing

i just started learning to code for Android and i really dont know what i did wrong, so i hoping that you can help me with my problems :) thanks in advance for any help :)

So I'm trying to customize the apps displayed through Intent.ACTION_SEND and it worked out really great except for WeChat and UrlToPDF. Instead of "WeChat" it is displayed as "Android-System". If I click that, it works, but it is shown wrong in the sharing Intent ... I dont really know what I have done wrong ... Can someone help me? :)

Here is the code:

        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);
        }

Thank you very much :)

Aucun commentaire:

Enregistrer un commentaire