Prevent ErrnoException class not found error for API level 15

pull/3/head
Olga Miller 2017-01-07 16:41:58 +01:00
rodzic 2e68bb431a
commit c08b6e7c4b
1 zmienionych plików z 4 dodań i 2 usunięć

Wyświetl plik

@ -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;