8

私は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の在庫です。

答えて

22

あなたが望むウリはバンドルに入っています。私は、コードの下にしようとしていると、そのようなあなたがACTION_SEND

+0

これは私がまさに必要で見ることができますcontent://media/external/images/media/1750

Intent intent = getIntent(); Bundle bundle = intent.getExtras(); Uri uri = (Uri)bundle.get(Intent.EXTRA_STREAM); 

詳しい情報として画像 のURIを取得することができます。ありがとうございました!だから、Googleのドキュメントは間違っていますか、何か誤解していましたか? – ziritrion

+0

ACTION_SENDドキュメントを参照してください。これは、フォーカスを合わせるべき 'input'を説明しています。 – dreamtale

関連する問題