Reputation: 123
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
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
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