Muneeb Awan
Muneeb Awan

Reputation: 123

Instagram application does not open with Android Intent

This is my code, the thing is I don't want to send images I just want the IG app to open. Yes the app is installed but still it is not getting picked up.

This was working fine till last week. Please help.

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

            if (isIntentAvailable(insta)) {
                this.startActivityForResult(insta, REQUEST_CODE_MY_PICK);
            } else {
            }

private boolean isIntentAvailable(Intent intent) {
        final PackageManager packageManager = getPackageManager();
        List<ResolveInfo> list = packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
        return list.size() > 0;
    }

Upvotes: 5

Views: 5435

Answers (2)

Peter Wauyo
Peter Wauyo

Reputation: 987

Try this

Uri appUri = Uri.parse("https://instagram.com/_u/user_name");
Uri browserUri = Uri.parse("https://instagram.com/user_name");

try{ //first try to open in instagram app
  Intent appIntent = getPackageManager().getLaunchIntentForPackage("com.instagram.android");
  if(appIntent != null){
     appIntent.setAction(Intent.ACTION_VIEW)
     appIntent.setData(appUri);
     startActivity(appIntent);
  }
}catch(Exception e){ //or else open in browser
   Intent browserIntent = new Intent(Intent.ACTION_VIEW, browserUri);
   startActivity(browserIntent);
}

Upvotes: 7

Simon
Simon

Reputation: 1737

Try to replace Uri.parse("http://instagram.com/") with Uri.parse("https://instagram.com/"). Also try to remove the isIntentAvailable and just call startActivity(insta) without 'forResult' and lastly remove insta.setPackage line.

Upvotes: 0

Related Questions