あんざいさんの http://y-anz-m.blogspot.jp/2010/03/android-action.html を参考に暗黙的Intentで呼ばれるアプリ一覧を取得し そこからパッケージ名、クラス名を取得してInstagramを起動しています。
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setData(imageUri);
intent.setType("image/jpg");
intent.addCategory(Intent.CATEGORY_DEFAULT);
PackageManager pm = getPackageManager();
List resolveInfos = pm.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
String className = null;
String packegeName = null;
for(ResolveInfo info :resolveInfos){
if("Instagram".equals(info.loadLabel(pm)) || "instagram".equals(info.loadLabel(pm))){
className = info.activityInfo.name;
packegeName = info.activityInfo.packageName;
break;
}
}
if(className != null && packegeName != null){
intent.setClassName(packegeName, className);
intent.setAction(Intent.ACTION_SEND);
intent.setType("image/jpg");
intent.putExtra(Intent.EXTRA_STREAM, imageUri);
startActivity(intent);
}else{
//Instagramがない場合の処理
}
これなら堂々と使えるかな。