Boa noite, estou tentando gravar um texto no cartão do android, mais não esta funcionando.
A classe que eu estou usando para gravar
[code]package br.com.couldsys.drumspro;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import android.os.Environment;
/**
- Gravar e Ler Arquivo Texto no SD do SmartPhone
- Os Arquivos serão gravados no cartão na Pasta “Android/data/seuPacote/cache”
- assim quando desinstalar a Aplicação o conteudo será removido
- @author Felipe Cobello
*/
public class WriteAndRead {
private File regFile;
/**
* Cria uma Nova Instancia da Classe
*
* @param packageName
* Nome do Pacote Principal
* @param fileName
* Nome do arquivo que sera criado
* @throws IOException
*/
public WriteAndRead(String packageName, String fileName) throws IOException {
regFile = new File(Environment.getExternalStorageDirectory().getPath()
+ "/Android/data/" + packageName + "/cache/" + fileName);
if (!regFile.getParentFile().exists())
regFile.mkdirs();
if (!regFile.exists())
regFile.createNewFile();
}
/**
* Grava o Arquivo
*
* @param texto
* Texto a ser gravado no Arquivo
* @throws IOException
*/
public void writeFile(String texto) throws IOException {
FileOutputStream file;
if (regFile.canWrite()) {
file = new FileOutputStream(regFile);
file.write(texto.getBytes());
file.close();
}
}
/**
* Lê o arquivo
*
* @return Conteudo do Arquivo
* @throws IOException
*/
public String readFile(String texto) throws IOException {
StringBuilder retorno = new StringBuilder();
FileReader reader;
BufferedReader br;
String line;
reader = new FileReader(regFile);
br = new BufferedReader(reader);
while ((line = br.readLine()) != null)
retorno.append(line);
br.close();
reader.close();
return retorno.toString();
}
}
[/code]
Outra classe que eu uso aqui envolvido também
[code]package br.com.couldsys.drumspro;
import java.util.Calendar;
public class RecordSound {
static long tempoInicio = 0;
static long tempoDecorrido = 0;
static String listaTempo;
// Método de retorno milisegundos calcula milisegundos
public static long MilliSeconds() {
// get Calendar instance
Calendar now = Calendar.getInstance();
return now.getTimeInMillis();
}
// Calcula o tempo para gravar o index do sound
public static void Calculate_Time(int indexClick) {
tempoDecorrido = (MilliSeconds() - tempoInicio);
listaTempo = listaTempo + String.valueOf(tempoDecorrido) + " - "
+ String.valueOf(indexClick) + ";";
}
// Utilizamos este método num botão record
public static void Start_Time() {
// pega o tempo do milisegundos inicial
tempoInicio = RecordSound.MilliSeconds();
// limpa a string para não ficar lixo
listaTempo = "";
}
// Utilizamos este método num botão stop
public static String Stop_Time() {
// zera o tempo do milisegundos
tempoInicio = 0;
return listaTempo;
}
}
[/code]
E aonde estou chamando
case R.id.pauseSound:
// chama o método stop da classe RecordSound
String arquivo = RecordSound.Stop_Time();
System.out.println("Codigos gravados.:"+arquivo); // pra ver no log
WriteAndRead objGravar;
try {
System.out.println("Entrou no objGravar"); // pra ver no log
objGravar = new WriteAndRead("br.com.couldsys.drumspro",
"GravaSound.txt");
System.out.println("Caminho do arquivo.:"+objGravar); // pra ver no log
objGravar.writeFile(arquivo);
} catch (IOException e) {
e.printStackTrace();
}
break;
}
Coloquei alguns logs pra ver até aonde vai e pelo visto não entra aqui
objGravar = new WriteAndRead("br.com.couldsys.drumspro",
"GravaSound.txt");
Mais não esta criando a pasta no PATH do android
Obrigado.
