{

title : "My Cyber-Space",

description : "O seu lugar de tecnologia",

author : "Victor Oliveira"

}


sábado, 3 de maio de 2014

Android: Como fazer para as imagens de sua aplicação não serem exibidas na galeria?

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.

Exemplo de código:

//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: