From c08b6e7c4b28cdb0547acc337fc069a6fe4fe3fc Mon Sep 17 00:00:00 2001 From: Olga Miller Date: Sat, 7 Jan 2017 16:41:58 +0100 Subject: [PATCH] Prevent ErrnoException class not found error for API level 15 --- app/src/main/java/om/sstvencoder/MainActivity.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/om/sstvencoder/MainActivity.java b/app/src/main/java/om/sstvencoder/MainActivity.java index 8f414ac..22130bc 100644 --- a/app/src/main/java/om/sstvencoder/MainActivity.java +++ b/app/src/main/java/om/sstvencoder/MainActivity.java @@ -30,6 +30,7 @@ import android.os.Build; import android.os.Bundle; import android.provider.MediaStore; import android.support.annotation.NonNull; +import android.support.annotation.RequiresApi; import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat; import android.support.v7.app.AppCompatActivity; @@ -112,7 +113,8 @@ public class MainActivity extends AppCompatActivity { try { stream = resolver.openInputStream(uri); } catch (Exception ex) { // e.g. FileNotFoundException, SecurityException - if (isPermissionException(ex) && needsRequestReadPermission()) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && isPermissionException(ex) + && needsRequestReadPermission()) { requestReadPermission(REQUEST_LOAD_IMAGE_PERMISSION); return false; } @@ -150,7 +152,7 @@ public class MainActivity extends AppCompatActivity { return type != null && type.startsWith("image/"); } - @TargetApi(Build.VERSION_CODES.LOLLIPOP) + @RequiresApi(Build.VERSION_CODES.LOLLIPOP) private boolean isPermissionException(Exception ex) { return ex.getCause() instanceof ErrnoException && ((ErrnoException) ex.getCause()).errno == OsConstants.EACCES;