27

Android 用の Instagram は、私がこれまで見てきたものからすると、非常に限られています。私のシナリオは単純です: ユーザーが画像を編集できるようにし、[送信] をクリックすると:

Intent share = new Intent(Intent.ACTION_SEND);
share.setType("image/jpeg");

次に、queryIntentActivities()Instagram がインストールされているかどうかを検索します。その場合、アップロードする画像のパスを送信します。

 share.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///" + path to myfile.png"));
 share.setClassName(resolveInfo.activityInfo.packageName, resolveInfo.activityInfo.name);
 share.putExtra(Intent.EXTRA_SUBJECT, "Sample subject");
 share.putExtra(Intent.EXTRA_TEXT, "Sample text");
 share.putExtra(Intent.EXTRA_TITLE, "Sample title");

結果:画像はInstagramアプリを使用してアップロードされます(もちろんログインしている場合)が、キャプションを追加できません。どれputExtraも効果がありません。では、インテント パラメータとしてキャプションを追加する方法はありますか?

もう 1 つの質問ですが、特定のユーザー名が入力された状態で Instagram アプリを開くことはできますか?

4

2 に答える 2

8

Instagram の Android アプリは EXTRA_TEXT、EXTRA_SUBJECT、EXTRA_TITLE を無視しているように見えるため、画像のアップロード中にキャプションを追加することはできないようです。ちなみに、さまざまなアプローチを試して、すべての場合にこれらの余分なものを無視するかどうかを確認できます。

オプション #1: MIME タイプの変更。

MIME タイプを「image/jpeg」に設定しています。「image/ 」または「 /*」を使用して、アプリがこれらのエクストラを無視していないかどうかを確認してください。

share.setType("image/*");

また

share.setType("*/*");

オプション #2:

複数の MIME タイプ (画像とテキスト) を送信しているため、アプリが ACTION_SEND ではなく ACTION_SEND_MULTIPLE を想定している可能性があります。

Intent share = new Intent(Intent.ACTION_SEND_MULTIPLE);

オプション #3:MediaStore.Images.Media.insertImage(ContentResolver cr, String imagePath, String name, String description)関数を使用:

Intent share = new Intent(Intent.ACTION_SEND);
share.putExtra(Intent.EXTRA_STREAM, Uri.parse(MediaStore.Images.Media.insertImage(getContentResolver(), "file:///" + path to myfile.png", "Sample title", "Sample description")));
share.setType("image/jpeg");
share.setClassName(resolveInfo.activityInfo.packageName, resolveInfo.activityInfo.name);

オプション #4: 問題をデベロッパー フォーラムに投稿してください。ただし、未解決の同様の質問があります。

そして、忘れずに戻ってきて、彼らの答えを教えてください!

于 2013-05-25T18:32:09.987 に答える