私はAndroidに画像エディタを作成しています。これまでのところ、1つのアクティビティしかありません。このアクティビティから、Galleryアクティビティを呼び出すメニューオプションを使用してイメージをロードできます。onActivityResultでは、受信したイメージをキャンバスにペイントして編集できます。これはうまくいきます。インテントフィルタ:intent.getData()がnullを返します
ここでは、このアクティビティを他の場所から呼び出すことができます。そのため、アクティビティ内から画像を選択する必要はなく、ギャラリーを開いて写真を選択してアプリに送信できます。しかし、私はどのように把握することはできません。
私のマニフェストに、私は<activity>
タグ内に以下の置かれている:http://developer.android.com/training/basics/intents/filters.htmlで述べたように、私の活動では、
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
</intent-filter>
その後、私はのonCreate()内の以下の置かれている。
...
//after initializing my view and stuff
Intent intent =getIntent();
Uri image = intent.getData();
//code to do something with my uri
...
アプリを携帯電話にインストールしてギャラリーを開くと、画像を選択して「送信」メニューを使用するとアプリがアプリリストに表示されますが、アプリを選択するとアプリが開きます画像は無視されます。私がintent.getData()
から得ているuriがnullであることが判明し、なぜその理由が分かりません。
何か間違っていますか?私は何かを忘れていますか?あなたが知っている必要がある場合、私はそれが付属してCoolIrisのギャラリーを使用して、Android 2.3の在庫です。
これは私がまさに必要で見ることができます
content://media/external/images/media/1750
詳しい情報として画像 のURIを取得することができます。ありがとうございました!だから、Googleのドキュメントは間違っていますか、何か誤解していましたか? – ziritrion
ACTION_SENDドキュメントを参照してください。これは、フォーカスを合わせるべき 'input'を説明しています。 – dreamtale