シナリオ
インテント送信元のアプリはプライベート領域上にPNG画像ファイルを保有しており、これを独自に実装したContentProviderを使用して外部アプリへ共有する。
- 独自実装のContentProviderはOpenableColumnsに対応し、ContentProvider#openFile(Uri, String)を実装。
- ContentProvider#getType(Uri)は"image/png"を返す
調査方法としてアプリ内で以下のようなインテントを生成し、ContentProviderへのメソッド呼び出しをデバッガで調べた。
Intent i = new Intent(Intent.ACTION_SEND);
i.addCategory(Intent.CATEGORY_DEFAULT);
i.setType("image/png");
i.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
i.putExtra(Intent.EXTRA_STREAM, Uri.parse("content://__authority__/image/1"));