Hello, I'm creating an app that when I click on an ImageView opens the android image gallery, but when I open it, it shows a Dialog for whether or not the user wants to access the gallery, my question is what I could I do it if I deny access?
public class MainActivity extends AppCompatActivity {
public static final int IMAGEM_INTERNA = 1;
public static final int PERMISSAO_REQUEST = 2;
EditText edtNome;
ImageView imgProduto;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Abre Dialog perguntando se o app da ou não permissão de acesso as pastas
if (ContextCompat.checkSelfPermission(this,
Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){
if (ActivityCompat.shouldShowRequestPermissionRationale(this,
Manifest.permission.READ_EXTERNAL_STORAGE)){
}else{
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, PERMISSAO_REQUEST);
}
}
edtNome = (EditText) findViewById(R.id.edtNome);
imgProduto = (ImageView) findViewById(R.id.imgProduto);
}
public void pegarImagem(View view){
//Chama todas as aplicações
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*"); //Define para aparecer apenas arquivos de imagens nas aplicações
startActivityForResult(intent, IMAGEM_INTERNA);
}
//Checa se houver resposta das aplicações com imagens pega e seta no ImageView
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent){
//Se houver aplicações com resposta
if (requestCode == IMAGEM_INTERNA){
//Se o processamento foi OK
if (resultCode == RESULT_OK){
Uri imagemSelecionada = intent.getData(); //Acessa recurso de imagem da aplicação
String[] colunas = {MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver().query(imagemSelecionada, colunas, null, null, null);
cursor.moveToFirst();
int indexColuna = cursor.getColumnIndex(colunas[0]);
String pathImg = cursor.getString(indexColuna); //caminho da imagem
cursor.close();
Bitmap bitmap = BitmapFactory.decodeFile(pathImg);
imgProduto.setImageBitmap(bitmap);
}
}
}
//Quando usuario escolhe se permissão a galeria é sim ou não para o app
@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults){
if (requestCode == PERMISSAO_REQUEST){
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
//Permissão concedida
}else {
//permissao negada, o que posso fazer aqui?
}
return;
}
}
}