1

ギャラリー アプリで自分のアプリに画像を共有させようとしています。問題は、ギャラリーから送信された画像データを取得する方法がわからないことです。メソッド .getData() でデータが見つかる可能性があると想定しましたが、null を返します

これは私の意図フィルターです

<intent-filter>
            <action android:name="android.intent.action.SEND"/>
            <action android:name="android.intent.action.VIEW"/>
            <data android:mimeType="image/*"/>
            <category android:name="android.intent.category.default"/>
        </intent-filter>

ここにMainActivityの私のコードがあります

Intent data = getIntent(); //get the intent that starts this activity, in this case: gallery intent
    if(data != null){ 
        Uri uri = data.getData();
        //set the image view: the problem is: uri is always null
        imageView.setImageURI(uri);
    }

メソッド getData() が私が望むものではない場合、アプリと共有することを意図した画像を取得するにはどうすればよいですか?

4

1 に答える 1

0

だから、私の答えは少し遅いと思いますが、とにかく、ここにあります:

AndroidManifest.xmlでインテント フィルターを次のように正しく設定しています。

<intent-filter>
    <action android:name="android.intent.action.SEND" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="image/*" />
</intent-filter>

この Web サイトに記載されているように、次のコマンドで URI を取得します。

Uri imageUri = (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM);

//set content of ImageView to the specific Uri
imageView.setImageURI(imageUri);

Intentクラスに関するドキュメントは、こちらにあります

于 2019-09-27T11:41:23.290 に答える