2017-12-30 20 views
-2

file:// uriはサポートされていません。人々はFileProviderを使用すると言うが、私はこれを使用するには、アプリケーションのデータの場所に画像を保存する必要があると思う。コンテンツを取得する方法はありますか?// URIなしデータdirectory.iに画像を保存するにはギャラリーからsdカードの画像を開きます。このコードは古い携帯電話で動作します。アンドロイド7は動作しません。 FileUriExposedException例の画像ファイルには、私の古いコードは、この別の場所を保存せずに画像を開くにはどうすればいいですか?

File pic2toview = new File(imagepath); 
    Intent i = new Intent(); 
    i.setAction(android.content.Intent.ACTION_VIEW); 
    i.setDataAndType(Uri.fromFile(pic2toview), "image/*"); 
    startActivity(i); 
+0

何をしますか?サーバから画像をダウンロードするか、端末に保存されている画像のURIを取得したいですか? –

+0

私のアプリのボタンをクリックしてギャラリーから/storage/emulated/0/dcim/imagefile.jpgを開きたいです。アンドロイド7upそれはすべての人がFileProviderを使用すると言うが、私はこのイメージを再度保存する必要はありません。私はただ開きたい –

+0

私の答えをチェックしてください。 –

答えて

1

コードの意図によって、ギャラリーから画像を選択するために、

Intent intent = new Intent(); 
     intent.setType("image/*"); 
     intent.setAction(Intent.ACTION_GET_CONTENT); 
     startActivityForResult(Intent.createChooser(intent, "Select Image"), PICK_IMAGE_REQUEST); 

そして、それはonActivityResultで取り扱わ、

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 

    if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null) { 

     imageUrl = data.getData(); 
    } 
} 

あるDCIMフォルダ内にありますここではimageUrlはギャラリーから選択した画像のUriです。

+0

いいえ、私はギャラリーから画像を取得しないようにしたいです。私はただ開きたい。私はIntent.ACTION_VIEWを使用したいが、これは動作するが、アンドロイド7ではこのリンクはFileProvider https://proandroiddev.com/sharing-files-though-intents-are-you-ready-for-nougat-70f7e9294a0b –

+0

あなたの要件として、 'onActivityResult'で得られた' Uri'を使って、 'imageview'でそのイメージを表示することができます。 –

+0

私は経路を知っていますので、私のアプリケーションでパスとショーを取得するためにonActivityResultは必要ありません。私はギャラリーから画像を開きたいが、助けてくれてありがとう。私はあなたに投票します。 –

関連する問題