1

私がやろうとしていること:

Facebook の写真から写真を選択し、その写真をネイティブの写真編集エクスペリエンス (写真アプリ) に送信します

私が取っている手順は次のとおりです。

  1. fb から写真の URL を取得する
  2. Picasso を使用して画像の URL をビットマップにフェッチする
  3. そのビットマップを、アプリ固有の /data/data/ dir のディスク上のファイルに保存します
  4. そのファイル パスから Uri を作成する
  5. 「com.android.camera.action.CROP」アクションの暗黙的なインテントのデータ部分としてその Uri を送信します。

問題は、写真アプリが /data/data ディレクトリのファイルにアクセスする権限を持っていないことだと思いますが、それが実際に問題であることを誰かが確認できるかどうか、もしそうなら、どのように解決したか知りたいですそれ。解決策は、ファイルをSDカードに保存して、写真アプリがアクセスできるようにすることだと思いますか?

わかりました、ここにいくつかのコードがあります...

ビットマップをファイルに書き込んだ後、これを呼び出して Uri を取得します

Uri pictureUri = Uri.fromFile(new File(path))

次に、その Uri をクロップ インテントに送信します。

Intent intent = new Intent("com.android.camera.action.CROP");
        intent.setDataAndType(pictureUri, "image/*");

そして、結果のアクティビティを開始します

activity.startActivityForResult(intent, RequestCode.CROP_IMAGE);

フィードバックをいただければ幸いです。

4

1 に答える 1

2

READ_EXTERNAL_STORAGE特にAndroid 6.0以降のデバイスでは危険な権限であるため、ファイルを共有すると権限の問題が発生することがよくあります(

代わりに、共有ファイルのトレーニングに従い、 FileProviderを使用して、他のアプリが (自分の側または他のアプリの側で) ストレージ アクセス許可なしで読み取ることができる Uri を作成する必要があります。

于 2016-02-11T18:01:01.353 に答える