1

アプリへのリンクを共有するボタンがあります。しかし、このボタンにはskype、gmail、whatsappが表示されます...たとえば、whatsappのみを表示するにはどうすればよいですか? 私に何ができる?

さらに、メールを送信するときに、gmail と hotmail のみを選択する必要があります。たとえば、その方法を教えてください。

つまり、whatsapp などのアプリの選び方を知っているということです。WhatsApp を介してメッセージを送信する

しかし、どうすれば複数のアプリを選択できますか..ありがとう。

編集 誰かが独自の共有チューナーを作成する方法についてのチュートリアルを持っていますか? ありがとう。

4

1 に答える 1

1

独自のチューザーを作成し、次のコードを使用します。

public void share_on_gmail()
{
    Intent sharingIntent = is_intent_available("com.google.android.gm",
            "com.google.android.gm.ComposeActivityGmail", "Gmail");

    send_mail(sharingIntent);
}

public void share_on_yahoo()
{
    Intent sharingIntent = is_intent_available("com.android.email",
            "com.android.email.activity.MessageCompose", "Email");

    send_mail(sharingIntent);
}

public void share_on_facebook()
{
    Intent sharingIntent = is_intent_available("com.facebook.katana",
                    "com.facebook.katana.ShareLinkActivity", "Facebook");
}

public void share_on_twitter()
{
    Intent sharingIntent = is_intent_available("com.twitter.android",
                            "com.twitter.android.PostActivity", "Twitter");

    if (sharingIntent != null)
    {
        String subject = ((XmlNewsDetailsParser)xmlParser).subject;
        String body = ((XmlNewsDetailsParser)xmlParser).body;
        File  mFile = savebitmap(((Picture)itemsAdapter.getItem(0)).image.bitmap);
        sharingIntent.setType("image/png");
        sharingIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(mFile));
        sharingIntent.putExtra(Intent.EXTRA_TEXT, "القارئ العربي" + "\n\n" + subject + "\n\n" + Html.fromHtml(body));

        startActivity(sharingIntent);
    }
}

public Intent is_intent_available(final String className, String activityName, String appName)
{
        Intent I = new Intent(android.content.Intent.ACTION_SEND);
        if (!activityName.equals(""))
        {
            I.setClassName(className, activityName);
        }
        else
        {
            I.setPackage(className);
        }

        PackageManager packageManager = getPackageManager();
        List list = packageManager.queryIntentActivities(I, PackageManager.MATCH_DEFAULT_ONLY);

        if (list==null || list.size() == 0)
        {
            AlertDialog ad = new AlertDialog.Builder(this).create();
            ad.setMessage("Please install the " + appName + " app to share news with your friends.");
            ad.setButton2("Later", new DialogInterface.OnClickListener() {  
                @Override  
                public void onClick(DialogInterface dialog, int which) {  
                    dialog.dismiss();
                }
            });

            ad.setButton("Install Now", new DialogInterface.OnClickListener() {  
                @Override  
                public void onClick(DialogInterface dialog, int which) {  
                    Intent marketIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://search?q=" + className));
                    startActivity(marketIntent);
                }
            });  
            ad.show();
            return null;
        }
        return I;
}

public void send_mail(Intent sharingIntent)
{
    if (sharingIntent == null) return;
    String subject = ((XmlNewsDetailsParser)xmlParser).subject;
    String body = ((XmlNewsDetailsParser)xmlParser).body;
    File  mFile = savebitmap(((Picture)itemsAdapter.getItem(0)).image.bitmap);
    sharingIntent.setType("image/png");
    sharingIntent.putExtra(Intent.EXTRA_SUBJECT, subject + "القارئ العربي - ");
    sharingIntent.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(body));
    sharingIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(mFile));
    startActivity(sharingIntent);
}

さらにいくつかのアプリケーションのクラス名とアクティビティ名があります。提供できます。それらを試してみてください。答えを変更します。

于 2013-12-29T15:07:01.490 に答える