Muitas vezes nossos aplicativos podem precisar fazer o download de imagens que não devem aparecer na galeria de imagens e somente serem exibidas pela aplicação.
A solução para este problema é simples e pode ser feita de forma manual pelo usuário do sistema ou programaticamente dentro de seu aplicativo. Basta criar um arquivo chamado ".nomedia" na pasta que você deseja não indexar a galeria de imagens.
//Método onCreate da activity @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //Path do arquivo .nomedia String noMediaPath = Environment.getExternalStorageDirectory() + "/ApplicationFolder/ + ".nomedia"; //Instanciando arquivo File noMediaFile = new File(noMediaPath); //Testando se arquivo já existe dentro da pasta da minha aplicação if (!noMediaFile.exists()) { try { //Pega o path dos diretórios da minha aplicação String dirTreePath = noMediaFile.getParent(); //Instancia o diretório da aplicação File dirTree = new File(dirTreePath); //E se ele não existir cria-os antes de criar o arquivo .nomedia if (!dirTree.exists()) { dirTree.mkdirs(); } //Cria o arquivo .nomedia noMediaFile.createNewFile(); //Aqui alertaremos ao Android que o sistema de arquivo sofreu uma modificação sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory()))); } catch (Exception e) { } } setContentView(R.layout.minha_activity); }
Pode ser necessário limpar o cache da Galeria de Imagens do android para que o código produza o efeito desejado.
Nenhum comentário:
Postar um comentário