質問編集履歴

1 間違い

kenta001

kenta001 score 16

2018/10/16 20:00  投稿

android 開発でinstagramに画像をつけて投稿することができません
android 開発でIntentを利用したinstagramに画像をつけて投稿することができません。
サンプルなどたくさん落ちているのあっさりできるかと思ったのですがエラーになります。
エラーメッセージ
ndroid.os.FileUriExposedException: file:///storage/emulated/0/DCIM/Camera/temp_image.png exposed beyond app through ClipData.Item.getUri()
調査内容
①上記の内容からファイルが存在していないかと思ったのですが、ファイルは存在しています。
②パーミッションが足りていない可能性
同じ画像をLINEアプリにIntentで渡すことがききましので、画像を参照することは可能です。
所感
 Lineのときは、
 File media = new File(mediaPath)
 Uri uri = Uri.fromFile(media);
 の書き方をしていなので、このあたりが原因かと思っています。
宜しくお願いします。
```Android Java
           //■設定
           Intent share = new Intent(Intent.ACTION_SEND);
           share.setPackage("com.instagram.android");
           share.setType("image/*");
           share.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
 
           File media = new File(mediaPath);
           Uri uri = Uri.fromFile(media);
           share.putExtra(Intent.EXTRA_STREAM, uri);
           try {
                   startActivity(Intent.createChooser(share, "Share to"));
               } catch (Exception e) {
                   Toast.makeText(getApplicationContext(), "Instgramアプリがインストールされていません", Toast.LENGTH_LONG)
                           .show();
           }
```
  • Java

    24129 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • Android

    10174 questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る