繁体   English   中英

从另一个Activity(Android)启动社交媒体应用或浏览器

[英]Launch Social Media App or browser from another Activity (Android)

目前,当用户点击该按钮时,他们将直接启动Facebook和Twitter应用程序。 但是,我想让用户可以选择使用浏览器或应用程序来查看配置文件。 另一个问题是我无法找到Instagram协议来启动应用程序来查看配置文件,我只能在网页上查看。 有人有想法?

        btnFb.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String uri = "fb://page/80829078894";
            Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
            startActivity(intent);

        }
    });

    btnTwitter.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String uri = "twitter://user?user_id=87114940";
            Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
            startActivity(intent);

        }
    });

    btnInstagram.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String uri = "http://instagram.com/plaza_semanggi";
            Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
            startActivity(intent);

        }
    });

将您的代码更改为以下内容

    btnFb.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            openFacebookIntent(ActivityMain.this, "80829078894");


        }
    });

    btnTwitter.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            openTwiterIntent(ActivityMain.this, "87114940");

        }
    });

    btnInstagram.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            openInstagramIntent(ActivityMain.this, "plaza_semanggi");

        }
    });

并有以下方法。

public static void openFacebookIntent(Context context, String facebookID) {

    Intent intent;

    try {
        context.getPackageManager().getPackageInfo("com.facebook.katana", 0);
        intent = new Intent(Intent.ACTION_VIEW, Uri.parse("fb://page/facebookID"));
    } catch (Exception e) {
        intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.facebook.com/facebookID"));
    }

    context.startActivity(intent);
}

public static void openTwiterIntent(Context context, String twitterID) {

    Intent intent;

    try {
        context.getPackageManager().getPackageInfo("com.twitter.android", 0);
        intent = new Intent(Intent.ACTION_VIEW, Uri.parse("twitter://user?user_id=twitterID"));
    } catch (Exception e) {
        intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://twitter.com/twitterID"));
    }

    context.startActivity(intent);
}

public static void openInstagramIntent(Context context, String instagramID) {

    Uri uri = Uri.parse("http://instagram.com/_u/instagramID");
    Intent intent = new Intent(Intent.ACTION_VIEW, uri);

    intent.setPackage("com.instagram.android");

    try {
        context.startActivity(intent);
    } catch (ActivityNotFoundException e) {
        context.startActivity(new Intent(Intent.ACTION_VIEW,
                Uri.parse("http://instagram.com/instagramID")));
    }
}

检查facebook是否已安装。

private boolean isAppInstalled(String uri)
{
    PackageManager pm = getPackageManager();
    boolean app_installed = false;
    try
    {
        pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES);
        app_installed = true;
    }
    catch (PackageManager.NameNotFoundException e)
    {
        app_installed = false;
    }
    return app_installed ;
}

boolean appInstalled = isAppInstalled("com.facebook.katana");

信用以了解是否安装了应用程序

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM