[RESOLVIDO][Android]Permission Folder

Senhores,

Estou com um problema, no meu app , eu amarzeno meus dados em arquivo “exemplo.txt”. Estou consiguindo achar pelo “File Explore” no android.
No AndroidManifest.xml utilizei os permission:

     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />  
    <uses-permission android:name="android.permission.WRITE_OWNER_DATA" />  
    <uses-permission android:name="android.permission.READ_OWNER_DATA" />

No meu emulador, tudo tranquilo. Mas quando importo o app para o aparelho, o programa abre normalmente , qdo é gerado o arquivo, não consigo achar este txt. Tentei achar pelo “Astro” e pelo “terminal”, não tive sucesso.

Alguém já passou por essa situação?, estou achando que tem haver com as permissão dos diretório, mas não consigo logar como root no aparelho, para dar chmod 777.

att
Ricardo

Ricardo,

Pelo que entendi funciona assim, você pode “escrever” arquivos nos diretórios públicos ou no diretório de sua aplicação, para o diretório de sua aplicação use o seguinte.

File root = Environment.getExternalStorageDirectory();
if (root.canWrite()) {			
	pathFiles = new File(root + "/Android/data/br.com.tabletsoft.converttopdf/files");
	if (!pathFiles.exists()) pathFiles.mkdirs();
}         

Neste codigo verifico se ele tem direito de escrita no SD, se tiver ele cria a pasta baseado no package da minha aplicação br.com.tabletsoft.converttopdf + a pasta files. Este é o caminho padrão definido pelo Android. Neste caso do path de sua aplicação se vc desinstalar ela do celular automaticamente os arquivos são todas excluidos juntamente com a pasta.

A variavel File pathFiles armazena o diretório de meus arquivos, e quando vou escrever neste diretorio, faço um new File(pathFiles, “nomeDoArquivo.txt”) por exemplo :wink:

Mais informações em
http://developer.android.com/guide/topics/data/data-storage.html

Ah, mais uma coisa, a única permissão que foi preciso dar foi,

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>

Espero que ajude,

abs,

Evandro

Obrigado Evandro,

Estavo utilizando FileOutputStream


		        		try {
				                FileOutputStream fOut;
	                                        fOut = openFileOutput("samplefile.txt",MODE_APPEND);
			        		Log.d("------File-----" ,filePath("samplefile.txt"));
			        		OutputStreamWriter osw = new OutputStreamWriter(fOut);
			        	  
			        	        osw.write("TESTE");
			                        osw.flush();
		     		                osw.close();
                
			        		} catch (FileNotFoundException e) {
			        			// TODO Auto-generated catch block
			        			e.printStackTrace();
			        		} catch (IOException e) {
			        			// TODO Auto-generated catch block
			        			e.printStackTrace();
			        		}

O código acima armazena os arquivos no path = “data/data/br.com.Seuprograma/files”, isso funciona no emulador, agora fazer o teste no aparelho isso muda, pq?

Com as observações do Evandro, no qual ajudou e bastante, o novo código ficou assim:

try {
                File root = Environment.getExternalStorageDirectory();
                File file = new File(root, "Data.txt");
                    if (root.canWrite())
                    {
                            FileWriter filewriter = new FileWriter(file,true);
                            BufferedWriter out = new BufferedWriter(filewriter);

                                out.write("GUJ");

                            out.close();
                    }
                } catch (IOException e) {
                        Log.e("TAG", "Could not write file " + e.getMessage());
                }

Porém no emulador não aparece o arquivo , já no aparelho sim, pq?

Bom, o problema foi solucionado, mas sugiram essas dúvidas acima. Se alguém puder compatirlhar seus conhecimentos…

att
Ricardo

Olá,
O emulador foi definido com sdcard?