1

すべてのソーシャル メディアにテキスト付きの画像を共有する必要があります。だから私は以下のコードを試しました:-

 share.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                Uri uri = imageUrl;

                Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
                shareIntent.setType("text/html");
                shareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, (String)
                        v.getTag(R.string.app_name));
                shareIntent.putExtra(android.content.Intent.EXTRA_TEXT,
                        "Text for post");
                shareIntent.putExtra(Intent.EXTRA_STREAM, uri);
                context.startActivity(Intent.createChooser(shareIntent, "Share Using"));

            }
        });

アプリのように、Gmailでテキストと画像を共有できるようになりました。しかし問題は、このアプリをすべてインストールして更新したにもかかわらず、この共有インテントを使用して Facebook、Twitter、Instagram を取得できないことです。

共有するソーシャル メディア アプリをすべて入手する必要があります。

"text/plain" を shareIntent 型として使用すると、Facebook は表示されるが画像を共有できない...

誰かが答えを見つけるのを手伝ってくれますか?

前もって感謝します。

4

2 に答える 2

0

これを試してみてください。

void share(String nameApp, Uri imagePath) {


    boolean isAppExist = false;
    try {
        List<Intent> targetedShareIntents = new ArrayList<Intent>();
        Intent share = new Intent(Intent.ACTION_SEND);
        share.setType("image/*");
        List<ResolveInfo> resInfo = getPackageManager().queryIntentActivities(share, 0);
        if (!resInfo.isEmpty()) {
            for (ResolveInfo info : resInfo) {
                Intent targetedShare = new Intent(Intent.ACTION_SEND);
                targetedShare.setType("image/*"); // put here your mime type
                if (info.activityInfo.packageName.toLowerCase().contains(nameApp) || info.activityInfo.name.toLowerCase().contains(nameApp)) {
                    targetedShare.putExtra(Intent.EXTRA_SUBJECT, getString(R.string.share_title));
                    targetedShare.putExtra(Intent.EXTRA_TEXT, shareMessage);
                    if (imagePath != null)
                        targetedShare.putExtra(Intent.EXTRA_STREAM, imagePath);
                    targetedShare.setPackage(info.activityInfo.packageName);
                    targetedShareIntents.add(targetedShare);
                    isAppExist = true;
                }
            }
            Intent chooserIntent = Intent.createChooser(targetedShareIntents.remove(0), "Select app to share");
            chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, targetedShareIntents.toArray(new Parcelable[]{}));
            startActivityForResult(chooserIntent, REQUEST_SHARE);
        }
    } catch (Exception e) {
        Utils.setLog("Exception while sending image on" + nameApp + " " + e.getMessage());
    }

    if (!isAppExist) {
        Dialogs.showAlert(this, null, getString(R.string.share_no_application_found), true, false);
    }


}

で、nameApp画像を投稿する必要があるアプリケーションの名前を渡す必要があります。あなたの場合、 を渡しfacebookます。

于 2016-11-18T09:38:13.923 に答える