2016-12-08 4 views
0

Я работаю над this sound recorder деятельности. Я добавил кнопку перезапуска для активности, чтобы начать запись снова, но проблема с кодом заключается в том, что она перезаписывает новый файл записи по последнему файлу. Я хочу отредактировать эту часть кода.Как добавить текущую дату и время к имени сохраненного файла?

outputFile = Environment.getExternalStorageDirectory(). 
    getAbsolutePath() + "/Recording" + date + time + ".3gpp"; 

Проблема заключается в том, что я нуб в кодировании, и я не знаю, как объяснить дату и время, и я не знаю, работает ли он или нет.

+0

Изменить 'date + time' на' (date.getTime() + Math.random()) ', чтобы получить уникальное имя - согласно http://stackoverflow.com/questions/20120562/javascript-timestamp-number -is-not-unique – mplungjan

ответ

0

большое спасибо моим друзьям. Но я сам нашел ответ. добавить:

import java.util.Calendar; 

затем добавить:

Calendar cal = Calendar.getInstance(); 
int seconds = cal.get(Calendar.SECOND); 
int minutes = cal.get(Calendar.MINUTE); 
int hour = cal.get(Calendar.HOUR); 
int date = cal.get(Calendar.DATE); 
int month = cal.get(Calendar.MONTH); 
int year = cal.get(Calendar.YEAR); 

, а затем:

outputFile = Environment.getExternalStorageDirectory(). 
     getAbsolutePath() + "/Recording" + (year) + "-" + (month) + "-" + (date) + "-" + (hour) + "-" + (minutes) + "-" + (seconds) + ".3gpp"; 

его работал для меня.

+0

Другой способ скинуть кошку (но более подробный и подверженный ошибкам) –

0

Если вам просто нужно уникальное имя, которое вы можете использовать.

Вы бы использовали его, чтобы заменить дату и время. getAbsolutePath() + "/ Запись" + System.currentTimeMillis() + ".3gpp";

Он дает количество миллисекунд с 1 января 1970 года. Обычно это будет uid. И, безусловно, создаст уникальные и последовательные имена.

0

Использование Эта функция вернет вам уникальный путь к файлу с датой и временем

public String getUniqueFilePath(String name,String formate) { 
    photo = new File(Environment.getExternalStorageDirectory(), 
      new SimpleDateFormat("yyyy_MM_dd_HHmmss", 
        Locale.getDefault()).format(new Date()) + name + formate); 
    return photo.getPath(); 
} 
1

Как о чем-то вроде

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); 
    String fName = String.format ("myFile_%s.txt", sdf.format(new Date())); 

и благодаря @ FabianGünter для делая это полное решение с

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); 
outputFile = Environment.getExternalStorageDirectory(). 
      getAbsolutePath() + "/Recording" + sdf.format(new Date()) + ".3gpp"; 
+0

Я буду взломать этот ответ, чтобы предоставить полный пример кода в соответствии с кодом, который вы указали: SimpleDateFormat sdf = new SimpleDateFormat ("yyyyMMddHHmmss"); outputFile = Environment.getExternalStorageDirectory(). getAbsolutePath() + "/ Запись" + sdf.format (новая дата()) + ".3gpp"; – N4zroth

+0

@ FabianGünter Спасибо, я отредактировал свой ответ с вашим вводом. –

Смежные вопросы