意图在Android上打开Instagram用户个人资料

Gri*_*hka 41 android android-intent instagram

我正在开发一个社交网络应用程序,我们的用户可以将他们的Instagram帐户连接到我们的服务.我想直接在他们的官方Android应用程序中打开Instagram个人资料(如果已安装),但我找不到任何方法可以做到这一点.但是,他们的开发者网站上有一个关于iOS上完全相同功能的页面,但这似乎根本不适用于Android.我在网上找到的所有内容都只提供了在浏览器中打开链接的各种方法.有什么建议?

小智 130

我使用以下代码解决了这个问题.

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

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

    try {
        startActivity(likeIng);
    } catch (ActivityNotFoundException e) {
        startActivity(new Intent(Intent.ACTION_VIEW,
                Uri.parse("http://instagram.com/xxx")));
    }
Run Code Online (Sandbox Code Playgroud)

  • 它打开浏览器 (4认同)
  • 看这个答案:/sf/ask/1084808301/您必须对配置文件使用``/ _u /``格式 (2认同)
  • @IharobAlAsimi这是非常基本的Android代码.并非一切都需要解释. (2认同)

Rah*_*ani 26

虽然@ jhondge的解决方案有效并且是正确的.这是一种更清洁的方法:

Uri uri = Uri.parse("http://instagram.com/_u/xxx");
    Intent insta = new Intent(Intent.ACTION_VIEW, uri);
    insta.setPackage("com.instagram.android");

    if (isIntentAvailable(mContext, insta)){
        startActivity(insta);
    } else{
        startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://instagram.com/xxx")));
    }

private boolean isIntentAvailable(Context ctx, Intent intent) {
    final PackageManager packageManager = ctx.getPackageManager();
    List<ResolveInfo> list = packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
    return list.size() > 0;
}
Run Code Online (Sandbox Code Playgroud)


小智 10

要直接打开Instagram应用到用户个人资料:

String scheme = "http://instagram.com/_u/USER";
String path = "https://instagram.com/USER";
String nomPackageInfo ="com.instagram.android";
    try {
        activite.getPackageManager().getPackageInfo(nomPackageInfo, 0);
        intentAiguilleur = new Intent(Intent.ACTION_VIEW, Uri.parse(scheme));
        } catch (Exception e) {
            intentAiguilleur = new Intent(Intent.ACTION_VIEW, Uri.parse(path));
        }
        activite.startActivity(intentAiguilleur); 

// Use this link to open directly a picture
  String scheme = "http://instagram.com/_p/PICTURE";
Run Code Online (Sandbox Code Playgroud)