findViewById(R.id.openImage).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
File f = new File(Environment.getExternalStorageDirectory(), "4.jpg");
Intent i = new Intent(Intent.ACTION_VIEW);
if (f.exists()) {
Uri uri = Uri.fromFile(f);
i.setDataAndType(uri, "image/jpeg");
startActivity(i);
}
else
{
Toast.makeText(MainActivity.this, "File not Exist", Toast.LENGTH_SHORT).show();
}
}
});
↑私はボタンをクリックすると、それはそれだけで次アンドロイドモニタが示すように、任意のエラーをスローせずにクラッシュした.However は画像を開き、活動を開始する必要があります。アンドロイドstartActivityのsdk23開いている画像のクラッシュ
8月15日16:48:33.715 24956から24994/com.example.administrator.readcontact D/OpenGLRenderer:HWUI GLパイプライン 8月15日16:48:33.821 24956から24994/com.example.administrator .readcontact I/OpenGLRenderer:初期化されたEGLバージョン1.4 08-15 16:48:33.821 24956-24994/com.example.administrator.readcontact D/OpenGLRenderer:スワップ動作1 08-15 16:48:33.821 24956-24994 /com.example.administrator.readcontact W/OpenGLRenderer:EGL_SWAP_BEHAVIOR_PRESERVEDで設定を選択できませんでした... 08-15 16:48:33.821 24956-24994/com.example.administrator.readcontact D/OpenGLRenderer:スワップの動作0 08-15 16:48:33.857 24956-24994/com.example.administrator.readcontact D/EGL_emulation:eglCreateContext:0xa8232400:maj 2分0 rcv 2 08-15 16:48:33.883 24956-24994/com.example.administrator.readcontact D/EGL_emulation:eglMakeCurrent:0xa8232400:ver 2 0(tinfo 0xa820b0b0) 08 -15 16:48:34.073 24956-24994/com.example.administrator.readcontact D/EGL_emulation:eglMakeCurrent:0xa8232400:ver 2 0(tinfo 0xa820b0b0) 08-15 16:52:23.554 24956-24965/com.example。 administrator.readcontact I /受精卵:アンドロイドモニターに示されているいずれかのエラーがありません↑WaitForGcToCompleteが原因のために11.170msのためにブロックされたが
`` ` をObjectsAllocated。
画像のファイルパスは、4.JPGEnvironment.getExternalStorageDirectory()、すなわち "/sdcard/4.jpg" を下にあります。
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
↑私は、外部記憶装置の読み取り権限を持っている↑私はこのコード
int ok1 = ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.READ_EXTERNAL_STORAGE);
if (ok1 != PackageManager.PERMISSION_GRANTED){
ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
REQUEST_EXTERNAL_STORAGE_READ);
}
を追加しました。
私はことを確認することができます:私はImageViewのファイルパス( "/ SDカード/ 4.JPG")を開くしようとしたときので
ファイルパスは、権利でありますそれはが成功しましたです。
私はを持っています。は外部ストレージを読み取る許可を得ています。私は、osが私に操作を許可したかどうかを尋ねたときに「はい」をクリックしました。
sdkのバージョンは26です。したがって、「/ sdcard/4」を読むときにアプリが許可を得なければならないと思います。JPG」
あなたはネイティブのギャラリーアプリ権でこのファイルを表示したい? –
はい。私は、チュートリアルでは、開いて見ました私はsdkのバージョンでシステム内で簡単にイメージを作成します。しかし、私はsdk26上でそれを実行しています... –