4

このようなコードで画像を共有することは可能ですか?

Intent share = new Intent(Intent.ACTION_SEND);
share.setData(Uri.parse("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACx"
    + "jwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGoSURBVDhPlVM9SEJRGD2DkL+QmoiKYNggToJL"
    + "4KKLNDiKW4NCoENQkzS1uboILoKjW61NSZOjo1uOBlHPgjJsuN3jvc+naVQHPt79vu+cc9/37n34"
    + "BQkd/0Jibw+3Ozt4j0TwwuCaNfYU5Qe43Tg5OMDD9TWEYUAIoYJr1mIxPEmjc01fh8uF03wer6vC"
    + "7zGbQZRKmPp8uNCyJWKhEAwSTDJ3NNc07fUsE76J1FjjcL5VQb0O4XBAVCoqj0ZV3u2qvN+H8Psx"
    + "1HLAZsPn6u6pFIQsi3AYYjKBcDpVXiyqPrl2O2ayZqc+FY9jaooZuZwSJBJL8iKv1SwONdTSIJtO"
    + "w1g1GA4h9vfVk3mjod5mPLY4ySQMqT2kgZ0jsMjZBgOL9D1omM2qtfwmH1K7SwN4vbhnkzuQ0G5v"
    + "imnOHjkMjwePC7HGUSajxuDM1aqa/+wM4vJSCRnmHSkU8CwNjrVWIRDAVauFubnjaATRbCoD7m7W"
    + "Ox3Mg0HcaNkaduV9GPCmbbuNrLEnxXeSuzi+reD/wJ+Hx1Qu443BNWvsadqfwDOu6lic9yaAL2uK"
    + "Y4RMd4E2AAAAAElFTkSuQmCC"));
startActivity(Intent.createChooser(share, getString(R.id.menu_share)));

私の目標は、アプリがストレージへの書き込み権限を必要としないようにすることですが、動的に作成される画像を共有できるようにすることです。これを行う方法はありますか?

4

1 に答える 1

3

このようなコードで画像を共有することは可能ですか?

いいえ、ACTION_SENDを使用しないためUriです。EXTRA_TEXTまたはを使用しEXTRA_STREAMます。

私の目標は、アプリがストレージへの書き込み権限を必要としないようにすることですが、動的に作成される画像を共有できるようにすることです。これを行う方法はありますか?

ContentProviderファイルを提供する を作成しUri、プロバイダー内のファイルへのポイントを に配置しますEXTRA_STREAM。カスタムパーミッションでプロバイダーを保護し、送信アクティビティが 経由でプロバイダーに一時的にアクセスできるようにすることができるかもしれませんが、追加の like 経由ではなく、実際の(例: ) を使用する構造でFLAG_GRANT_READ_URI_PERMISSIONのみ試しました。IntentUrisetData()EXTRA_STREAM

このサンプル プロジェクトでは、この手法を使用して示しますACTION_VIEW(注: 実際に機能させるには、PDF ビューアーがインストールされたデバイスが必要です)。

于 2013-04-06T13:49:48.230 に答える