1

Android アプリで共有オプションを制限する方法はありますか? インテントオプションShareActionProviderを使用して、または単にインテントを開始しようとしました。Intent.ACTION_SEND基本的には、メールのみなどでの共有を制限できるようにしたいと考えています。

4

2 に答える 2

1

次のように、必要に応じてインテント チューザーをカスタマイズできます。

List<Intent> targetedShareIntents = new ArrayList<Intent>();
        Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
        shareIntent.setType("text/plain");
        List<ResolveInfo> resInfo = getPackageManager().queryIntentActivities(shareIntent, 0);
        if (!resInfo.isEmpty()){
            for (ResolveInfo resolveInfo : resInfo) {
                String packageName = resolveInfo.activityInfo.packageName;
                Intent targetedShareIntent = new Intent(android.content.Intent.ACTION_SEND);
                targetedShareIntent.setType("text/plain");
                targetedShareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "subject to be shared");
                if (StringUtils.equals(packageName, "com.facebook.katana")){
                    targetedShareIntent.putExtra(android.content.Intent.EXTRA_TEXT, "http://link-to-be-shared.com");
                }else{
                    targetedShareIntent.putExtra(android.content.Intent.EXTRA_TEXT, "text message to shared");
                }

                targetedShareIntent.setPackage(packageName);
                targetedShareIntents.add(targetedShareIntent);


            }
            Intent chooserIntent = Intent.createChooser(targetedShareIntents.remove(0), "Select app to share");

            chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, targetedShareIntents.toArray(new Parcelable[]{}));

            startActivity(chooserIntent);
        }

これがお役に立てば幸いです。

于 2014-10-29T08:33:00.403 に答える