Здравствуйте, нужно знать, как идентифицировать аудиофайл в хранилище устройства, вопрос в следующем:
Я занимаюсь разработкой музыкального проигрывателя и сохраняю некоторые данные воспроизведения в базе данных, которые прикрепляются к каждому аудиофайлу в отдельности, время от времени приложение проверяет изменения в аудиобиблиотеке пользователя (на SD-карте или во внутренней памяти) и вставляет новые песни (если есть) в базе данных, проблема в том, что я не могу идентифицировать, если база данных уже существует, потому что я не могу получить общий идентификатор, я пытался использовать путь музыки в хранилище, но в некоторых случаях имя музыки имеет запрещенные символы, которые мешают мне использовать в sqlite, поэтому вопрос:
Как определить аудиофайл?
РЕДАКТИРОВАТЬ1:
Я думаю, что мой вопрос был не очень ясным, я хотел, чтобы был способ индивидуальной идентификации каждого аудиофайла, используя, например, некоторые метаданные файла, которые являются уникальными для него и не могут быть повторены, такие как дата создания файла в миллисекундах или любых других метаданных, уникальных для каждого файла, например отпечаток пальца.
Я тестирую решение, которое, по моему мнению, не является идеальным, я беру путь к файлу и использую класс Base64 для его кодирования:
String path = "/ storage / emulated / 0 / Download / Disturbed-десять тысяч кулаков.mp3";
Base64.encodeToString (path.getBytes (), Base64.DEFAULT); '
результат: L3N0b3JhZ2UvZW11bGF0ZWQvMC9Eb3dubG9hZC9EaXN0dXJiZWQtVGVuIFRob3VzYW5kIEZpc3Rz
Lm1wMw
Размер варьируется в зависимости от пути, но String получает только буквы и цифры, которые приняты в базе данных, и результат всегда одинаков для каждого пути. Что ты об этом думаешь?