У меня есть звуки уведомлений, добавленные в исходный текст приложения, и я могу успешно сохранить их в каталоге уведомлений приложения c, используя
private void savefile()
{
Uri uri = Uri.parse("android.resource://" + getActivity().getApplicationContext().getPackageName() + "/" + R.raw.notification);
String sourceFilename= uri.getPath();
File path = getActivity().getApplicationContext().getExternalFilesDir(Environment.DIRECTORY_NOTIFICATIONS);
String destinationFilename = path.getPath()+File.separatorChar+"Testnotification.mp3";
SweLog.d(TAG, "sourceFileName: " + sourceFilename + " destFileName: " + destinationFilename);
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try {
bis = new BufferedInputStream(getResources().openRawResource(R.raw.unlocked));
bos = new BufferedOutputStream(new FileOutputStream(destinationFilename, false));
byte[] buf = new byte[1024];
bis.read(buf);
do {
bos.write(buf);
} while(bis.read(buf) != -1);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (bis != null) bis.close();
if (bos != null) bos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Если я просматриваю телефон, я вижу, что mp3 файл был успешно добавлен в Android/data/<package-name>/files/Notifications/Testnotification.mp3
. Однако наличие файла, похоже, не позволяет ему появиться в списке уведомлений для приложения. Если я go в настройках приложения, выберите один из каналов уведомлений и откройте список доступных звуков, тогда добавленный звук не отобразится в списке. Однако, если я копирую и вставляю файл в «глобальный» каталог уведомлений /Notifications
, я вижу его в списке доступных звуков. Разве для этого приложения не должно быть звукового уведомления в каталоге приложения c Notifications? Если нет, могу ли я сохранить его прямо в «глобальном» каталоге уведомлений?